python - 查询集不会在表单上更新
问题描述
我已经尝试过了,但它似乎对我不起作用。当我运行服务器时,我的表单会更新选择,但后来当我添加新站点时,它不会显示在路线表单的列表中。
模型.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)
我认为该视图没有任何问题,但如果您认为有任何问题,我可以添加它
表格.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)
表单类中的代码在 django 启动时仅运行一次,因此stops = [(stop.name, stop.name) for stop in Stop.objects.all()]
列表不会动态更新。
推荐阅读
- amazon-web-services - 在ec2上创建docker容器后如何创建api端点
- flutter - 有没有办法在 iOS 上的 Flutter 应用程序的 URL 上启动 Safari 或其他一些外部浏览器?
- python - 如何通过 API 获取 Cardano 未使用的交易输出(UTxO)?
- google-cloud-platform - 我可以将承诺使用折扣从 1 年升级到 3 年吗?
- javascript - 更改变量后更新日历中的事件 - Fullcalendar
- reactjs - 这样减少useState的调用次数有好处吗?
- html - 在 IOS 上正确显示 SVG 元素
- django - Django REST 多嵌套序列化器过滤器
- excel - 将导入的工作表放入名为 data 的工作表中并放置在相应的列中
- javascript - HERE Maps 3.1 图层重绘问题