我正在尝试为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文档中没有找到任何相关内容。我错过了什么吗?
答案 0 :(得分:3)
unique_together就是你想要的。
class DeviceProperty(Model):
…
class Meta:
unique_together = ['device', 'name']