Django模型创建共同唯一字段

35 浏览
0 Comments

Django模型创建共同唯一字段

我正在尝试为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文档中找到任何关于这个的内容。我错过了什么吗?

admin 更改状态以发布 2023年5月21日
0
0 Comments

unique_together是你要用的选项。

class DeviceProperty(Model):
    …
    class Meta:
        unique_together = ['device', 'name']

0