簡體   English   中英

在django表單中獲取對象不可迭代的錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM