Django的 - 创建一个包含其他车型领域

Django的 - 创建一个包含其他车型领域

问题描述:

我试图打造“unique_together”元为模型,但不是从当前模型两个领域唯一重点,其中之一就是其他模型中的字段(这是一个在当前模型外键): 我希望有“项”模式unique_together同时包含了“标识”字段和规格的CONTAINER_ID。一个Spec是'Item'中的外键。 试过这样的事情,但我得到“未解决的参考规范......”Django的 - 创建一个包含其他车型领域

class Spec(BaseModel): 
    title = models.CharField(max_length=200) 
    identifier = models.IntegerField(unique=True) 
    container = models.ForeignKey(Container, related_name='specs') 

class Item(SubmittalsBaseModel, BaseModel, DirtyFieldsMixin): 
    title = models.CharField(max_length=200) 
    identifier = models.CharField(max_length=200, unique=True) 
    spec = models.ForeignKey(Spec, related_name='items') 

     class Meta: 
     container_id = spec.container 
     unique_together = ('identifier', 'container_id') 

你不能做到这一点。(至少我认为)..

unique_together子句直接翻译到SQL唯一索引。而且,您只能在单个表格的列上设置这些列表,而不是多个表格的组合。

您可以自己动手,虽然加验证,只需覆盖validate_unique方法,这验证添加到它。

Docs:http://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.validate_unique

+0

谢谢。你可以只把一个链接 - https://*.com/questions/4440010/django-unique-together-with-foreign-keys – user2880391

+0

是的,我可以做到这一点! – zaidfazil