今天使用django的forms,发现单选后台新增数据后,前端表单选项不能刷新

class UserForm(forms.Form):
name = forms.ChoiceField(
choices=User.objects.values_list('id', 'name')
)

后台用户表新增一个用户

Django Forms ChoiceField 选项更新问题-LMLPHP

刷新表单页面,没有选择项

Django Forms ChoiceField 选项更新问题-LMLPHP

重启服务器后,表单页面出来选项

Django Forms ChoiceField 选项更新问题-LMLPHP

这个问题主要是choice字段初始化后不会再次更新,实际项目中不可能增加数据后再重启服务器

调整form

class UserForm(forms.Form):
name = forms.ChoiceField(
# choices=User.objects.values_list('id', 'name')
) def __init__(self, *args, **kwargs):
super(UserForm,self).__init__(*args, **kwargs)
self.fields['name'].choices = User.objects.values_list('id', 'name')

再新增一个人名

Django Forms ChoiceField 选项更新问题-LMLPHP

刷新表单页面,可以选择到新增项

Django Forms ChoiceField 选项更新问题-LMLPHP

05-24 09:56