天天看点

【Python】 Django 怎么实现 联合主键?

unique_together

Options.

unique_together

Sets of field names that, taken together, must be unique:
unique_together = (("driver", "restaurant"),)
      
This is a tuple of tuples that must be unique when considered together. It’s used in the Django admin and is enforced at the database level (i.e., the appropriate 

UNIQUE

 statements are included in the 

CREATE TABLE

statement).

For convenience, unique_together can be a single tuple when dealing with a single set of fields:

unique_together = ("driver", "restaurant")
      

ManyToManyField

 cannot be included in unique_together. (It’s not clear what that would even mean!) If you need to validate uniqueness related to a 

ManyToManyField

, try using a signal or an explicit 

through

 model.

The 

ValidationError

 raised during model validation when the constraint is violated has the 

unique_together

 error code.

参考资料:

https://docs.djangoproject.com/en/dev/ref/models/options/#unique-together

http://m.blog.csdn.net/article/details?id=8768504