感谢这个帖子,我能够很容易地做计数和组通过查询在Django视图:如何获取相关对象在Django中的extra()。values()调用中?
Django equivalent for count and group by
我在做什么我的应用程序是显示硬币的类型和面值列表在我的数据库中可以找到一个国家,所以来自英国的硬币的面值可能是“1 farthing”或“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.name字段)。
这样做的最佳方法是什么?