Django模型创建共同唯一字段
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日
unique_together是你要用的选项。
class DeviceProperty(Model): … class Meta: unique_together = ['device', 'name']