この投稿のおかげで、Djangoビューでクエリごとにカウントとグループ化を簡単に行うことができます。
私がアプリで行っているのは、ある国のデータベースで利用可能なコインの種類と額面のリストを表示しているため、英国のコインの額面は「1ファージング」または「6ペンス」である可能性があります。はface_value
6、currency_type
は「ペンス」で、関連するテーブルに保存されます。
私の見解では、90%の道のりを取得する次のコードがあります。
def coins_by_country(request, country_name):
country = Country.objects.get(name=country_name)
coin_values = Collectible.objects.filter(country=country.id, type=1).extra(select={'count': 'count(1)'},
order_by=['-count']).values('count', 'face_value', 'currency_type')
coin_values.query.group_by = ['currency_type_id', 'face_value']
return render_to_response('icollectit/coins_by_country.html', {'coin_values': coin_values, 'country': country } )
はcurrency_type_id
、外部キーフィールド(つまり4)に格納されている番号として検出されます。私がやりたいのは、クエリの一部として参照する実際のオブジェクトを取得することです(Currencyモデルなので、テンプレートでCurrency.nameフィールドを取得できます)。
それを行うための最良の方法は何ですか?