因此,我有一个表单,其中定义了一个选择小部件,如下所示:
class AdHocVoucherTemplateForm(ModelForm):
class Meta:
model = AdHocVoucherTemplate
widgets = {
'retailer_id': Select(choices=[(r.pk, r.name) for r in Retailer.objects.all()]),
}这样,我实现了与所有零售商的选择输入字段。用户可以从下拉列表中选择零售商并提交表单。
我注意到的问题是,当我添加一个新零售商(Retailer.objects.create等)时,它不会出现在下拉列表中的表单中。它似乎被缓存了。当我重新启动运行Django的uwsgi服务时,它就在那里。
如何使小部件始终刷新数据库中的最新值?
发布于 2014-04-28 17:54:25
当我对ModelChoiceField做类似的事情时,我没有看到这种缓存行为。它的默认小部件是Select。
类似于:
retailer = forms.ModelChoiceField(queryset=Retailer.objects.all())当您的代码被计算时,选择参数只构造一次,然后您的选择只有一个零售商(id,name)元组的静态列表。在构造ModelChoiceField时,它引用的是一个QuerySet,直到实际请求/显示选项列表时才会对其进行评估。
https://stackoverflow.com/questions/23346792
复制相似问题