【发布时间】:2019-01-11 08:57:40
【问题描述】:
我在forms.py 中创建了一个表单,它使用基于数据库对象的选择输入:
from controls.models import Valve
class CronjobForm(forms.Form):
query = Valve.objects.all()
VALVE_CHOICES = [
(valve.pk, valve.name) for valve in query
]
valves = forms.ChoiceField(required=True, widget=forms.Select, choices=VALVE_CHOICES)
起初,一切似乎都正常,HTML 的 <select> 和 option 被渲染。
问题是,当我使用 Django 管理界面向数据库添加一个新的 Valve 对象时,ChoiceField 字段需要一段时间才能更新 - 我看不到前面的新选项- 立即结束。我尝试重新加载页面,强制重新加载,甚至将查询打印到终端 - 变量 query 立即更新,只是 HTML 没有。
它最终会在一段时间、一分钟左右后更新,这可能要归功于系统检查或重复 runserver 命令。
所以我想知道,我错过了什么?有没有办法强制更新表格?表单是否被缓存,这就是导致问题的原因?
【问题讨论】:
标签: django python-3.x forms