Django是否禁用小部件缓存?

Django是否禁用小部件缓存?,django,django-forms,django-widget,Django,Django Forms,Django Widget,因此,我有一个表单,其中定义了一个选择小部件,如下所示: class AdHocVoucherTemplateForm(ModelForm): class Meta: model = AdHocVoucherTemplate widgets = { 'retailer_id': Select(choices=[(r.pk, r.name) for r in Retailer.objects.all()]), } 这

因此,我有一个表单,其中定义了一个选择小部件,如下所示:

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服务时,它就在那里


如何使小部件始终刷新数据库中的最新值?

当我对一个小部件执行类似操作时,我看不到这种缓存行为。 它的默认小部件是Select

比如:

retailer = forms.ModelChoiceField(queryset=Retailer.objects.all())
当您的代码被计算时,choices参数被构造一次,然后您的select只有一个零售商(id,name)元组的静态列表。构建
modelcooicefield
时,它引用的是一个查询集,在实际请求/显示选项列表之前,不会对该查询集进行计算