次のような 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()
ただし、データの整合性を保つため、1 つのデバイスに同じ名前の 2 つのプロパティを設定することはできません。そのため、DeviceProperty のデバイス フィールドと名前フィールドを合わせて一意にする必要があります。
これを実現する簡単な方法は、2 つのフィールドに複合主キーを設定することですが、これにはいくつかの問題が発生し、さらに重要なことに、Django ではサポートされていません。
これについては、Django のドキュメントで何も見つかりませんでした。私は何かを逃したことがありますか?