我試圖創造一個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文檔中找到任何關於此的信息。我錯過了什麼?
獨特=真不會讓我有兩個領域共同的獨特(記住,既沒有設備也沒有名稱字段應該是唯一的,獨立存在時),我沒有看到OnetoOneField如何幫助 – Habfast 2013-02-25 10:33:17
是啊,但設備有很多屬性,所以OnetoOneField肯定不是這樣。但非常感謝! – Habfast 2013-02-25 10:44:46
OneToOne適用於您實際上希望ONE對象具有完全一個匹配其他對象的情況。他希望ONE對象具有多個其他匹配對象,但希望確保這些匹配對象不共享相同的「名稱」值。 – 2013-02-25 10:47:49