我正在编写ModelX模型,它会有几个obj1,obj2等
ModelX有一个字段fieldX
我想确保对于所有obj1,obj2,obj3等,其中只有一个有fieldX =“XXX”,而其他人都没有
我可以在pre_save()或post_save()中放置断言,但有没有更简洁的方法在数据库级别执行此操作,以便它引发IntegrityError?
由于
我有一个Link模型,它有一个用户的外键,一个access_token = textfield,和bool is_active
我想强制执行任何时候,对于特定用户的Link对象,只有零个或一个对象可以有is_active True,并且任意数量的对象都可以有is_active = False
答案 0 :(得分:1)
UNIQUE约束适用于True和False值。如果你真的想要使用它,你必须使is_active
字段可以为空并使用None(NULL)而不是False,因为两个NULL不被认为是相等的(至少在PostgreSQL和MySQL中)。
答案 1 :(得分:0)
是的,请使用' unique'模型定义https://docs.djangoproject.com/en/dev/ref/models/fields/#unique
中的字段选项