8

'my_movie_code_count'という変数から、テンプレートの値を取得する方法を知りたいです。

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'}

テンプレート:(現在、出力は表示されません。)

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

1 に答える 1

5

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__title属性を確認すると、名前は次のmovie__countようになります。そのため、テンプレート属性を次のように変更する必要があります。

{{ movie.movie__title }}: {{ movie.movie__count }}
于 2012-07-26T22:15:37.750 に答える