2010-01-22 89 views
2

的一個很好的方式。假設我有一個這樣的模式:的Django,查詢不同的模型

class Foo(models.Model): 
    name = models.CharField("ad",max_length=25) 
    type = models.ForeignKey(Type) 

所以在數據庫中,我有富用相同名稱字段對象,但不同類型,即:

name type 
A  1 
A  2 
B  1 
C  2 
A  3 
B  3 

我將使用此信息序,以生成HTML選擇形式,顯示所有可能的(不同)的名稱,以便在端我的選擇表格將被示出,例如:

<select> 
    <option value="A">A</option> 
    <option value="B">B</option> 
    <option value="C">C</option> 
</select> 

如何獲得name不同值的列表?

+0

我是唯一一個沒有看到任何的問題在這裏:)? – 2010-01-22 09:15:16

+0

@Tomasz - 如果你尋找它,那裏有一個,我已經編輯它,使其更加明顯。 – 2010-01-22 10:02:21

回答

6

在回答你的問題以後至T111,更簡單的方法是:

Foo.objects.values_list('name', flat=True).distinct().order_by('name') 
2
Foo.objects.values('name').distinct().order_by('name') 
+0

這似乎工作的感謝,但輸出是這樣的: { '名':u'A} { '名':u'B} { '名':u'C} 我怎麼能解決這個問題問題? – Hellnar 2010-01-22 09:46:13

+0

備案我有這樣的:名稱= [。我[「名稱」]因爲我在Foo.objects.values(「名稱」)不同的()ORDER_BY(「名」)] – Hellnar 2010-01-22 09:54:13

+0

看到我的答案更簡單這樣做的方法。 – 2010-01-22 09:57:59