我有一个看起来有点像这样的模型:
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/