如何在Django中考虑唯一键中的相关字段?

问题描述 投票:0回答:1

我有以下django型号:

class Entity(models.Model):
    name = models.CharField(max_length=255)


class EntityProp(models.Model):
    entity = models.ForeignKey('Entity')
    key = models.CharField(max_length=255)
    value = models.CharField(max_length=255, blank=True, default='')

我想为Entity制作一个独特的钥匙,包括name和相关的EntityProp。例如,我想要两个具有相同名称和不同相关EntityProp实例的实体不同。但是如果他们有相同的名字和Entity实例,我想保持相同的EntityProp。有没有一种优雅的方式在Django中做到这一点?

作为一种保留方式,我可以在Entity中创建一个名为props_hash的附加字段,其中包含所有相关实例的标识符的哈希值,但我认为支持这种结构并不容易。所以我相信有更好的方法。

python django
1个回答
0
投票

干得好

class Entity(models.Model):
    name = models.CharField(max_length=255)


class EntityProp(models.Model):
    entity = models.ForeignKey('Entity')
    key = models.CharField(max_length=255)
    value = models.CharField(max_length=255, blank=True, default='')

    class Meta:
        unique_together = ('key', 'entity')

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

© www.soinside.com 2019 - 2024. All rights reserved.