我有一个查询模型来填充表单的视图:
class AddServerForm(forms.Form):
…snip…
# Compile and present choices for HARDWARE CONFIG
hwChoices = HardwareConfig.objects.\
values_list('name','description').order_by('name')
hwChoices = [('', '----- SELECT ONE -----')] +\
[ (x,'{0} - {1}'.format(x,y)) for x,y in hwChoices ]
hwconfig = forms.ChoiceField(label='Hardware Config', choices=hwChoices)
…snip…
def addServers(request, template="manager/add_servers.html",
template_success="manager/add_servers_success.html"):
if request.method == 'POST':
# …snip… - process the form
else:
# Page was called via GET - use a default form
addForm = AddServerForm()
return render_to_response(template, dict(addForm=addForm),
context_instance=RequestContext(request))
使用管理界面完成对HardwareConfig模型的添加。更改会立即显示在管理界面中。
通过shell运行查询会按预期返回所有结果:
michael@victory> python manage.py shell
Python 2.6 (r26:66714, Feb 21 2009, 02:16:04)
[GCC 4.3.2 [gcc-4_3-branch revision 141291]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from serverbuild.base.models import HardwareConfig
>>> hwChoices = HardwareConfig.objects.\
... values_list('name','description').order_by('name')
hwChoices现在包含完整的结果集。
但是,加载addServers视图(上面)会返回旧的结果集,缺少新添加的条目。
我必须重新启动网络服务器才能显示更改,这样看起来似乎是在某处缓存了查询。
grep -ri cache /project/root
不返回任何内容)出了什么问题,我该如何解决?
版本:
答案 0 :(得分:3)
hwChoices
- 即进程开始时。
请使用表单__init__
方法进行计算。