Django 表单选择在页面刷新时消失
Django form choices disappear on page refresh
我有一个 Django 表单,它有一个 select 字段来为外键关系选择一个用户。最初,当页面加载时,它会显示 select 字段,其中包含所有用户作为选项。刷新页面(或由于验证错误而重新加载)时,select 字段没有选项。继续刷新有时会加载它们,但并不一致。
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 表单多次执行此操作,但从未遇到过此问题。任何想法表示赞赏,谢谢。
出于某种原因,您正在使用生成器进行选择。第一次过后就累了
至少,您应该将该定义移到 __init__
方法中。
我有一个 Django 表单,它有一个 select 字段来为外键关系选择一个用户。最初,当页面加载时,它会显示 select 字段,其中包含所有用户作为选项。刷新页面(或由于验证错误而重新加载)时,select 字段没有选项。继续刷新有时会加载它们,但并不一致。
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 表单多次执行此操作,但从未遇到过此问题。任何想法表示赞赏,谢谢。
出于某种原因,您正在使用生成器进行选择。第一次过后就累了
至少,您应该将该定义移到 __init__
方法中。