每次更改数据库中的内容后如何重新启动Django服务器?
因此,假设我在数据库上执行了Model.objects.update(),如何使Django服务器自动重启? 我使用dropwdown过滤器,当我将值从“ 25”更新为“ 22”时,下拉过滤器仍显示“ 25”,直到手动重启服务器为止。我该如何更改?
这是我的表格。我将django_filters用作下拉过滤器。
class CSVFilter(django_filters.FilterSet):
entries = CSV5.objects.values_list('gebaeudebereich', flat = True).distinct()
gebaeudebereich_auswahl = [(e, e) for e in entries]
gebaeudebereich = django_filters.ChoiceFilter(choices = gebaeudebereich_auswahl, label="Gebäudebereich")
entries = CSV5.objects.values_list('gebaeudenummer', flat=True).distinct()
gebaeudenummer_auswahl = [(e, e) for e in entries]
gebaeudenummer = django_filters.ChoiceFilter(choices=gebaeudenummer_auswahl, label="Gebäudenummer")
entries = CSV5.objects.values_list('ebene', flat=True).distinct()
ebene_auswahl = [(e, e) for e in entries]
ebene = django_filters.ChoiceFilter(choices=ebene_auswahl)
entries = CSV5.objects.values_list('raum', flat=True).distinct()
raum_auswahl = [(e, e) for e in entries]
raum = django_filters.ChoiceFilter(choices=raum_auswahl)
答案 0 :(得分:1)
仅在服务器启动时实例化表单和下拉列表中显示的值。您可能不想重启runserver
,因为在生产Web服务器上不会发生这种情况。
相反,您将要覆盖表单的__init__
方法,并在那里设置下拉菜单的值。这是一个简单的示例:
class MyForm(forms.form):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["my_field"] = forms.ModelChoiceField(
queryset=MyModel.objects.all(),
)
祝你好运!