0
我正在使用CheckBoxSelectMultiple來顯示供用戶從中選擇的東西列表。當我試圖挽救,它給我的錯誤:保存CheckBoxSelectMultiple時接收unicode而不是我的對象
'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,它試圖強制unicode的option_value,我認爲這應該是我的自定義對象。刪除,但沒有幫助,但。
這裏是鏈接到源上的Django:
https://code.djangoproject.com/browser/django/trunk/django/forms/widgets.py
感謝您的回覆。我最終只是使用了一個字典,並通過使用unicode的東西作爲關鍵字來提取正確的對象。 – sharkfin