我有一个将数据输入db的表单.我有另一个带有下拉字段的表单,它使用第一个表单输入的数据.
因此,当我从第一个表单提交数据时,db会正确更新.但是当我加载第二个表单时,下拉列表不会使用最新数据进行更新.
调试步骤如下
问题不在于事务/提交等.以第二种形式检索下拉数据的查询是正确的.
问题不在于视图缓存(因为我们没有任何缓存中间件)我也尝试过像@ never_cahce,@ cache_control等缓存装饰器
我尝试以第二种形式给出一个打印声明.我相信问题在于表单缓存.每个django表单只加载一次,即.在加载网站的第一页时.然后从此缓存加载表单.
第一页
形成
class AddOrganization(forms.Form):
orgList = getOrgUnitList()
orgUnit = forms.CharField(label=u'Organization Name',
max_length=50,
error_messages={'required':'Organization name is required field.'})
parentOrg= forms.ChoiceField(label=u'Parent Organization',
choices=[(u'Select',u'Select')]+orgList,
error_messages={'required':'Organization name is required field.'})
Run Code Online (Sandbox Code Playgroud)
第二页
形成
class AddUser(forms.Form):
orgUnitList = getOrgUnitList()
email = forms.EmailField(label=u'Email',
max_length=50,
error_messages={'required':'Email is required field'})
orgUnit = forms.ChoiceField(label=u'Organizational Unit',
choices=orgUnitList,
error_messages={'required':'Organizational unit is required field'})
Run Code Online (Sandbox Code Playgroud)
询问
def getOrgUnitList():
orgUnitList = list(OrganizationUnit.objects.values_list('OrgUnitID','OrgUnitName').order_by('OrgUnitName'))
return orgUnitList
Run Code Online (Sandbox Code Playgroud)
编辑
如果我使用modelforms,一切都很好.为什么呢?