2012-12-29 21 views
0

例如,我有數據:
如何設計一個鍵具有多個對應值的Django模型?

key:  unique value: 
value1 672345 
value1 823764 
value1 478214 
value1 123575 
value2 866323 
value2 967386 

存儲在一個表中的唯一值,其優選地不能接觸。 另外,可以爲多個唯一值分配一個鍵。 另一個表格將包含一個具有唯一鍵的列。

在Django中表達這種關係有什麼好的設計方法?

回答

2

這裏是簡單的模型展示瞭如何定義模型和現場:

from django.db import models 

class Value(models.Model): 
    val = models.IntegerField(unique=True) 

class Key(models.Model): 
    key = models.CharField(max_length=50) 
    value = models.ManyToManyField(Value, related_name='values') 

這就是你可以在模型上得到鍵和鍵值,查詢:

from myApp.models import Key, Value # where myApp is your app name 

key = Key.objects.get(key='my_key') 
values = key.values.all() 
+0

在'一對多''外鍵'應該被添加到表中,具有唯一的值,對吧?另外 - 如果使用答案中列出的模型 - 不可能從'Key'對象檢索對應於鍵的vals?你可以添加這樣的檢索的例子嗎? –

+0

你需要'ManyToMany'我已經更新了我的答案。我將舉例說明如何從關鍵對象中檢索值。 –

+0

謝謝!這就是我一直在尋找的! –

相關問題