我有一個包含圖片庫標籤的數據庫。它們包含'id','picture_id'和'tag'字段。我正在嘗試構建所有標記的列表,但沒有列出兩次相同的標記。我知道我可以在queryset中使用distinct(),但在all()中使用this只會引發錯誤,告訴我後端數據庫不支持它。 (我正在使用MySQL)。在django中使用distinct()獲取對象列表
如果我使用values_list('id','tag'),我不會得到那個錯誤。我根本沒有得到任何錯誤。但是我沒有得到任何我可以在我的模板中打印出來的東西。
該查詢集是這樣寫的:
tags = Tag.objects.values_list('id', 'tag').distinct().order_by('tag')
在模板我可以嘗試與打印:
{% for tag in tags %}
<p>{{ tag.id }}: {{ tag.tag }}</p>
{% endfor %}
這給我的長(ISH)行 ':' 跡象,但在其右側或左側沒有任何東西。這表明我的清單中有東西,但似乎無法使用它。我究竟做錯了什麼?
編輯:值得注意的是,我試圖在殼牌中做這些事情,當打印出標籤時,我得到了一個對象列表,看起來似乎由id和標籤組成,但我仍然無法得到它的輸出在模板中。
這解決了我的問題,無法看到帖子,所以謝謝!當我可以(6分鐘)時,我會將其標記爲可接受的答案,但我似乎仍然無法使用不同的方式來清除獨特的標籤,並且也能夠使用'id'。你知道有一種方法可以做到這一點,或者是在將視圖發送到模板之前手動在views.py中創建列表或其他東西的唯一方法嗎? – 2012-08-03 12:20:59
你在調用'distinct()'還是'distinct('tag')'?後者可能由於錯誤而導致錯誤:https://code.djangoproject.com/ticket/17974 – 2012-08-03 12:28:13
我知道使用不同的('tag')後面的錯誤。我認爲問題在於,有了values_list('id','tag'),然後做一個distinct(),然後可以查看id和tag的獨特組合,這當然會永遠是唯一的。 – 2012-08-03 12:34:27