0
CheckBoxSelectMultiple을 사용하여 사용자가 선택할 항목 목록을 표시하고 있습니다. 내가 저장하려고하면, 그것은 나에게 오류를 제공합니다CheckBoxSelectMultiple을 저장할 때 개체 대신 유니 코드 받기
'unicode' object has no attribute 'name'
내 선택 목록을 저장할 수 2 튜플, 내 사용자 정의 개체 인 첫 번째 항목을 가지고 있으며, 두 번째 항목은 사람이 읽을 수있는 (문자열) .
forms.py:
# I have a list of my custom objects here, which is built dynamically
data = grab_data()
# Building the choice list
CHOICES = []
for item in data:
CHOICES.append((item, item.name))
class DisplayForm(forms.Form):
display = forms.MultipleChoiceField(choices=CHOICES, widget=widgets.CustomCheckboxSelectMultiple())
이
의 의견입니다 :views.py:
....
if forms.is_valid():
items = request.POST.getlist('display')
for item in items:
print type(item) # Says it's unicode, not my custom object that I want to add to my model.
mymodel = PackageModel(name=item.name, etd=item.etd) # breaks here since 'item' is unicode object and not my custom object
mymodel.save()
....
이 (내가 사용하는 내 사용자 지정 것과 매우 유사) CheckboxSelectMultiple 소스 코드를 보면, 나는 그것이 강제로 시도 라인 (706)에 알았는데 유니 코드, option_value에 대한 내 사용자 지정 개체를 생각합니다. 제거하는 것은 도움이되지 않습니다. 당신은 당신의 품목이 아닌 객체 자체에서 값 목록을 다시받을거야
https://code.djangoproject.com/browser/django/trunk/django/forms/widgets.py
응답 해 주셔서 감사합니다. 나는 그냥 딕트 (dict)를 사용하여 끝내고 유니 코드를 키로 사용하여 정확한 객체를 꺼냈다. – sharkfin