我是Django的新手。我想要做的是显示一些JSON响应值,我将其转换为元组以显示在我的Django表单的选择域中。
这就是我创建元组的方式
usernamelist = []
useremaillist = []
for userobject in userobjects:
username = userobject['somevalue']
email = userobject['somevalue']
useremaillist.append(email)
usernamelist.append(username)
user_tuple = zip(usernamelist,useremaillist)
这是我的表格
class UserSelectForm(forms.Form):
users = forms.ChoiceField(label="Select user")
然后在我的观点中,我试图将所有这些名字放入下拉列表
selectform = UserSelectForm()
selectform.fields['users'].choices = user_tuple
它成功显示但是当我尝试提交表单时,我选择了一个有效的选择并不是错误选择之一。
这是我试图从提交的表单
中获取下拉选定值的地方if request.method == 'POST' and 'preview' in request.POST:
selectform = UserSelectForm(request.POST)
if selectform.is_valid():
user_email = selectform.cleaned_data['users']
print user_email
return HttpResponseRedirect('/')
答案 0 :(得分:0)
如果您确实需要手动决定选择,那么您应该将它们作为表单初始值设定项的要求
class UserSelectForm()
def __init__(self, choices, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['users'].choices = choices
然后用选择
来调用它UserSelectForm(user_tuple, request.POST or None)