【发布时间】:2020-02-13 19:28:56
【问题描述】:
我有一个用于 Group 的简单 Django 模型,其中包含 Contacts 列表。每个组必须选择任一主要联系人 ForeignKey 或所有联系人 BooleanField,但不能同时选择两者,也不能没有。
class Group(models.Model):
contacts = models.ManyToManyField(Contact)
contact_primary = models.ForeignKey(Contact, related_name="contact_primary", null=True)
all_contacts = models.BooleanField(null=True)
我如何确保:
除非设置了
contact_primary或all_contacts(但不能同时设置),否则无法保存模型。我想那是通过实现Group.save()方法?还是应该是Group.clean()方法??在 Django Admin 中,要么在选择一个字段时禁用另一个字段,要么至少提供一个有意义的错误消息,如果两者都设置或没有设置并且管理员尝试保存它?
谢谢!
【问题讨论】:
标签: django django-admin