gpt4 book ai didi

Django 模型在添加之前验证 ManyToMany 字段

转载 作者:行者123 更新时间:2023-12-04 14:23:45 26 4
gpt4 key购买 nike

我有一个看起来有点像这样的模型:

class Passenger(models.Model):
name = models.CharField(max_length=50)
surname = models.CharField(max_length=50)


class Flight(models.Model):
capacity = models.IntegerField()
passengers = models.ManyToManyField(Passenger)

在向航类添加新乘客之前,我想验证乘客数量是否不会超过容量。我想知道什么是最好的方法来解决这个问题。

显然我可以在添加新乘客之前手动检查乘客数量,但也许 django 有一些支持?我尝试编写验证器,但不知道该怎么做。

最佳答案

根据姜戈 docs您可以收听 m2m_changed 信号,将触发 pre_add post_add 行动。

Using add() with a many-to-many relationship, however, will not call any save() methods (the bulk argument doesn’t exist), but rather create the relationships using QuerySet.bulk_create(). If you need to execute some custom logic when a relationship is created, listen to the m2m_changed signal, which will trigger pre_add and post_add actions.

关于Django 模型在添加之前验证 ManyToMany 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50260508/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com