Django表单选择在页面刷新时消失

时间:2015-03-22 13:21:14

标签: python django forms post

我有一个Django表单,它有一个select字段来为ForeignKey关系选择User。最初,当页面加载时,它会显示包含所有用户选项的选择字段。刷新页面(或由于验证错误而重新加载)时,选择字段没有选项。继续刷新有时加载它们但不一致。

forms.py:

user_choices = ((obj.id, obj.email) for obj in User.objects.all())

class EditContentForm(forms.ModelForm):
    class Meta:
        model = Content
        fields = ['title', 'user']

    def __init__(self, *args, **kwargs):
        super(EditContentForm, self).__init__(*args, **kwargs)
        self.fields['title'].widget = TextInput(attrs = {'class' : 'form-control'})
        self.fields['user'].widget = Select(attrs = {'class' : 'form-control'}, choices = user_choices)

我已经多次使用Django表单,从未见过这个问题。任何想法都表示赞赏,谢谢。

1 个答案:

答案 0 :(得分:2)

出于某种原因,您正在使用生成器进行选择。在第一次之后,它会筋疲力尽。

至少,您应该在__init__方法中移动该定义。