2012-07-26 27 views
2

我想知道如何得到的值在模板中,從一個名爲「my_movie_code_count」變量:如何從Django查詢集中檢索值?

my_movie_code_count = Code.objects.values('movie__title').annotate(Count('movie')) 

如果我做了pprint到控制檯我得到:

for m in my_movie_code_count: 
    pprint.pprint(m) 

控制檯輸出:

{'movie__count': 1, 'movie__title': u'THE MEN WHO STARE AT GOATS'} 
{'movie__count': 3, 'movie__title': u'PIRATE RADIO'} 
{'movie__count': 1, 'movie__title': u'A SERIOUS MAN'} 
{'movie__count': 3, 'movie__title': u'GREENBERG'} 
{'movie__count': 1, 'movie__title': u'MILK'} 
{'movie__count': 1, 'movie__title': u'TEST'} 

模板:(目前,它不顯示任何outpu T)

{% for movie in my_movie_code_count %} 
    {{movie.title}}:{{movie.count}} 
    {% endfor %} 
+0

我想做一些不同的,只是打印整個查詢集以最快的解決辦法'打印到控制檯(YourModl .objects.all()。值())'。沒有解決您的問題,但這是唯一出現的相關問題。 – citynorman 2017-12-17 18:20:21

回答

2

my_movie_code_count[0].movie__count現在我知道這是不完全想要的,所以你可以一個名稱添加到註釋:

my_movie_code_count = Code.objects.values('movie__title').annotate(num=Count('movie')) 
print my_movie_code_count[0].num 
1 

您可以檢查這裏的文檔:https://docs.djangoproject.com/en/dev/ref/models/querysets/#annotate

而且它不會顯示任何內容,因爲django在模板上默默無聞(所以設計者不會破壞整個頁面)。如果您檢查屬性,它們的名稱是movie__titlemovie__count,所以你將不得不更改模板屬性:

{{ movie.movie__title }}: {{ movie.movie__count }} 
+0

謝謝!好的解決方案 – ipegasus 2012-07-26 22:49:16