2016-12-07 61 views
0

我是新来的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 

其成功显示,但是当我尝试提交我的表单我得到选择一个有效的选择是不是一个的AVA可选择的选择错误。

这是在那里我试图从提交的表单下拉选择的价值

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

你真的需要实际工作中调用它y提供表单中的选项,不能将它们添加到视图中并期望它适用于表单的每个实例(您在底部代码片段中使用了不同的表单) – Sayse

+0

我正在生成选项使用API​​调用和JSON响应的视图我没有从数据库中获得这些选择。如何解决这个问题的任何不同的方法? –

+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) 
相关问题