更改数据库后重新启动Django服务器

时间:2019-04-10 08:01:18

标签: django python-3.x

每次更改数据库中的内容后如何重新启动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)

1 个答案:

答案 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(),
        )

祝你好运!