我有一个Django表单,我希望在我的视图中使用查询中的动态选择列表。
这是我正在尝试做的事情:
views.py
getdata = MyModel.objects.filter(filter=filter)
form = MyForm(request.POST or None,
mylist=[( (getdata.id), (getdata.name) ) for choice in getdata]
当我运行时,我收到'QuerySet' object has no attribute 'id'
错误。
我知道我可以使用ModelChoiceField
并以我的形式进行查询但是对于这个特定情况,我宁愿使用我视图中生成的列表。
答案 0 :(得分:2)
choice
是每次迭代中的单个项目,而不是getdata
。
mylist=[( (choice.id), (choice.name) ) for choice in getdata]
答案 1 :(得分:1)
尝试:
form = MyForm(request.POST or None,
mylist=[( (choice.id), (choice.name) ) for choice in getdata]
当你在列表理解,这里或字典理解中进行迭代时,你需要以与编写for循环时相同的方式思考:
for choice in getdata:
#do something