有一個以id爲主鍵的表datatn_crawlmeta。 我想從表中獲得不同的nm並顯示它。通過Django管理界面上的查詢渲染組。 (字段中的不同值在django中被打破)
mysql> SELECT id, gid_id, nm from datagen_crawlmeta limit 10;
+----+--------+----------------------------+
| id | gid_id | nm |
+----+--------+----------------------------+
| 1 | 1 | votes |
| 2 | 1 | performance_rating |
| 3 | 1 | title |
| 4 | 1 | specs__Sound__Loudspeaker |
| 5 | 1 | specs__Sound__3.5mm jack |
| 6 | 1 | specs__Sound__Alert types |
| 7 | 1 | specs__Sound__unknown0 |
| 8 | 1 | specs__Features__Java |
| 9 | 1 | specs__Features__Messaging |
| 10 | 1 | specs__Features__Colors |
+----+--------+----------------------------+
10 rows in set (0.00 sec)
使用以下代碼將返回所有行。 它是因爲self.model.objects.all().distinct('nm')
正在返回CrawlMeta對象而不是nm。
我可以使用self.model.objects.values_list('nm', flat=True).distinct()
,但它返回 nm的列表,它與查詢集的返回類型不兼容。
class CrawlMetaAdmin(admin.ModelAdmin):
list_display = ['nm']
def queryset(self, request):
query_dict = request.GET
nm = query_dict.get('nm')
return self.model.objects.all().distinct('nm')
我的最終目的是展示納米和使用 下面的查詢在Django管理接口計數。
select nm, count(*) from datagen_crawlmeta group by nm;