这个问题与 1.1 中的 Django 聚合/注释有关。假设我有一个带有 IntegerField 的简单模型,该模型具有传递给它的“选择”参数。在这种情况下,它映射到一个 GENDERS 元组,如图所示。通常,在模板(或视图)中,我可以使用 get_gender_display() 函数来引用性别的文本值。
但是,当我在下面的视图中注释性别计数时,我无法使用 get_gender_display() 函数查找每个性别的文本值。请参阅下面的模板摘录。我将如何获取性别的文本价值?
我以前从未使用过 Django Aggregation,所以也许我错过了一个明显的解决方案。谢谢你考虑我的情况。
模型.py
GENDERS = (
('',' '),
(1,'Female'),
(2,'Male'),
)
class Subscriber(models.Model):
gender = models.IntegerField(blank=True, null=True, choices=GENDERS)
视图.py
from django.db.models import Count
def myview(request):
...
sum_gender = Subscriber.objects.values('gender').annotate(gender_sum=Count('gender'))
context = { 'sum_gender':sum_gender, }
return render_to_response(template_name, context,context_instance=RequestContext(request))
模板
...
{% for genderAndsum in sum_genders %}
<div>{{ genderAndsum.get_gender_display }} {{ genderAndsum.gender_sum }}</div>
{% endfor %}
...