[英]Getting object not iterable error in django form
以我的形式,我有這個
mychoices = User.objects.filter(category__name='city')
我收到這個錯誤
User Object is not iterable
。 我是django的新手
這是下一行
relevance = forms.MultipleChoiceField(choices=mychoices, widget=forms.CheckboxSelectMultiple())
如果我評論這一行,那么我沒有看到任何錯誤
編輯:
我發現錯誤,我不得不使用它
(choices=[ (o.id, str(o)) for o in User.objects.all()]) Then it works.
有誰知道以前的方法中的問題是什么
您只需要指定widget類,而不是調用構造函數:
relevance = forms.MultipleChoiceField(choices=mychoices, widget=forms.CheckboxSelectMultiple)
UPDATE選項必須是2元組的可迭代。 首先是將在POST請求參數中返回的值,在UI上顯示第二個字符串表示。 可能是,做這樣的事情是有意義的:
choices = User.objects.filter(category__name='city').values_list('id', 'first_name')
你會得到:
(1, 'Mark')
(2, 'Jack')
...
當用戶選擇選項和發布表單時,您將在參數中接收用戶ID,因此您將能夠通過它檢索用戶對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.