'至少必须填写其中一个字段' - 我可以在Django模型中强制执行此要求吗?

时间:2011-07-13 00:40:26

标签: django django-models

这是一个用例:

class Tweet(models.Model):
url_1 = models.CharField(max_length=140)
url_2 = models.CharField(max_length=140)
url_3 = models.CharField(max_length=140)

我希望用户为每个Tweet实例指定至少一个URL。

我知道如何在views.py中强制执行此条件,但我想知道是否有办法配置Django模型,以便用户需要在给定的一组模型字段中填写至少一个可以保存实例。我认为解决方案会更清晰。

谢谢!

2 个答案:

答案 0 :(得分:1)

无法在模型级别完成,但可以在数据库级别添加可以强制执行此操作的约束。

答案 1 :(得分:1)

从Django 1.2开始,您可以使用模型的clean()方法进行此类检查。 https://docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs#django.db.models.Model.clean