查询集不会在表单上更新

Queryset does not update on Form

我试过 this 但它似乎对我不起作用。 当我运行服务器时,我的表单会更新选项,但稍后当我添加新站点时,它不会显示在路线表单列表中。

models.py

class Route(models.Model):
    DIRECTION_CHOICES = [
        (True, "UP"),
        (False, "Down")
    ]
    STATUS_CHOICES = [
        (True, "Active"),
        (False, "Inactive")
    ]
    TYPE_CHOICES = [
        (True, "AC"),
        (False, "General")
    ]
    name = models.CharField(verbose_name="Route Name", unique=True, blank=False, null=False, max_length=50)
    direction = models.BooleanField(verbose_name="Direction", null=False, blank=False, choices=DIRECTION_CHOICES)
    status = models.BooleanField(verbose_name="Status", null=False, blank=False, choices=STATUS_CHOICES)
    list_of_stops = models.TextField(verbose_name="Stops", null=False, blank=False)
    type = models.BooleanField(verbose_name="Type", null=False, blank=False, choices=TYPE_CHOICES)


class Stop(models.Model):
    name = models.CharField(verbose_name="Name", unique=True, blank=False, null=False, max_length=50)
    latitudes = models.DecimalField(verbose_name="Latitudes", max_digits=9, decimal_places=6)
    longitudes = models.DecimalField(verbose_name="Longitudes", max_digits=9, decimal_places=6)

我认为该视图没有任何问题,但如果您认为有任何问题,我可以添加它

forms.py

class RouteForm(forms.ModelForm):
    stops = [(stop.name, stop.name) for stop in Stop.objects.all()]
    list_of_stops = forms.MultipleChoiceField(choices=stops, required=False)

    class Meta:
        model = Route
        fields = ('name', 'direction', 'status', 'type')

有人可以告诉我我做错了什么吗?

尝试使用 ModelMultipleChoiceField 代替:

list_of_stops = forms.ModelMultipleChoiceField(queryset=Stop.objects.all(), required=False)

表单中的代码 class 运行 仅在 django 启动时出现一次,因此 stops = [(stop.name, stop.name) for stop in Stop.objects.all()] 列表不会动态更新。