重新填充 Django ChoiceField 而不重新启动服务器
我有一个简单的表单,用户可以从选择字段中选择一个部门。
这是我的表单:
class NewDealForm1(forms.Form):
department = forms.ChoiceField(choices = map(lambda x:('%s'% x.id, '%s' % x.title),Department.objects.all()))
每当我从管理员添加新部门时,除非重新启动服务器,否则我的选择字段不会显示新部门。
如何在不重新启动服务器的情况下显示所有部门?
I have a simple form where users can select a department from a choicefield.
This is my form :
class NewDealForm1(forms.Form):
department = forms.ChoiceField(choices = map(lambda x:('%s'% x.id, '%s' % x.title),Department.objects.all()))
Whenever I add a new department from admin, my choicefield doesn't display new department unless I restart my server.
How can i display all departments without restarting the server ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该尝试使用直接接受查询集的
forms.ModelChoiceField
,而不是使用forms.ChoiceField
。文档: https://docs.djangoproject.com/en/dev/ ref/forms/fields/#modelchoicefield
示例
Instead of using a
forms.ChoiceField
you should try aforms.ModelChoiceField
which takes a queryset directly.Docs: https://docs.djangoproject.com/en/dev/ref/forms/fields/#modelchoicefield
Example
沃尔夫的回答是正确的。
但要直接回答您的问题(“在不重新启动服务器的情况下重新填充 Django ChoiceField”),您需要在表单构造函数中设置选择。以下是动态信用卡年份选择的示例。
Wolph's answer is correct.
But to answer your question directly ("Repopulating Django ChoiceField Without Restarting Server"), you'd need to set the choices in your form constructor. Here's an example for a dynamic credit card year choice.