【发布时间】:2012-01-19 02:49:21
【问题描述】:
我有一个向数据库输入数据的表单。 我有另一个带有下拉字段的表单,它使用第一个表单输入的数据。
所以当我从第一个表单提交数据时,数据库会正确更新。 但是当我加载第二个表单时,下拉列表不会更新为最新数据。
调试步骤
问题不在于事务/提交等。 检索第二种形式的下拉菜单数据的查询是正确的。
问题也不在于视图缓存(因为我们没有任何缓存中间件) 我还尝试了缓存装饰器,如@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.'})
第二页
表格
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'})
查询
def getOrgUnitList():
orgUnitList = list(OrganizationUnit.objects.values_list('OrgUnitID','OrgUnitName').order_by('OrgUnitName'))
return orgUnitList
编辑
如果我使用 modelforms,一切都很好。为什么会这样?
【问题讨论】:
-
你能给我们看一些代码示例吗?注:您必须从第一个表单中重新加载/获取数据库中的数据,您需要在第二个表单的下拉列表中显示这些数据。
-
我们只是凡人 - 请提供实际代码,否则我们只是在猜测问题。这个查询到底在哪里?你确定它正在被执行吗?即使您是肯定的,也请向我们展示!