我有一个查询模型以填充表单的视图:
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
不返回任何内容) - 不是浏览器缓存页面 - 通过 chrome 工具检查,也尝试使用不同的用户和计算机
出了什么问题,我该如何解决?
版本:
- MySQL数据库:1.2.2
- django:1.2.5
- 蟒蛇:2.6