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

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

后台用户表新增一个用户

Django Forms ChoiceField 选项更新问题

 

 

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

Django Forms ChoiceField 选项更新问题

 

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

Django Forms ChoiceField 选项更新问题

 

 这个问题主要是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 选项更新问题

 

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

Django Forms ChoiceField 选项更新问题