3

我正在尝试为 Django 创建一个如下所示的模型:

class Device(Model):
    UDID = CharField(length=64, primary_key=True)
    # more irrelevant stuff

class DeviceProperty(Model):
    device = ForeignKey(Device)
    name = CharField(length=255)
    value = CharField(length=255)
    readOnly = BooleanField()

但是,出于数据完整性的原因,单个设备不应该有两个同名的属性。所以我需要使 DeviceProperty 的设备和名称字段共同唯一。

实现此目的的一种简单方法是在两个字段上使用复合主键,但这会引发一些问题,更重要的是 Django 不支持。

我在 Django 文档中没有找到任何关于此的内容。我错过了什么吗?

4

1 回答 1

3

unique_together是你想要的。

class DeviceProperty(Model):
    …
    class Meta:
        unique_together = ['device', 'name']
于 2013-02-25T10:30:37.550 回答