Python 如何在models.py文件中获取外键值的最大值?
这是我的html文件Python 如何在models.py文件中获取外键值的最大值?,python,html,django,Python,Html,Django,这是我的html文件 {% for member in member_list %} {% for batting in batting_list %} {% if member.id == batting.member.id %} {{ batting }} <br> {{ batting.match.id }} <br> {{
{% for member in member_list %}
{% for batting in batting_list %}
{% if member.id == batting.member.id %}
{{ batting }}
<br>
{{ batting.match.id }}
<br>
{{ batting.runs }}
<br>
<hr>
{% endif %}
{% endfor %}
{% endfor %}
我试图弄清楚如何在html文件中显示成员x的最大运行次数。目前,我已经能够做到这一点,为整个打击表,但不是为个人成员!请提供任何帮助您可以查询:
from django.db.models import Max
member.batting_set.aggregate(
max_runs=Max('batting__runs')
)['max_runs']
然后用以下方式呈现:
{% for member in member_list %}
{{ member.max_runs }}
{% endfor %}
{%用于成员列表%中的成员]
{{member.max_runs}
{%endfor%}
您需要在查询集中创建注释,该注释将包含成员的最高运行次数
from django.db.models import Max
Member.objects.annotate(max_runs=Max('batting__runs'))
您可以像访问常规字段一样访问它
member_object.max_runs
我不确定您的视图,但对于ListView,类将如下所示
class MemberView(ListView):
template_name = 'tmp.html'
model = Member
def get_queryset(self):
return Member.objects.annotate(max_runs=Max('batting__runs')).all()
您可以对成员使用
annotate
,以获得最高的击球值
from django.db.models import Max
Member.objects.annotate(max_runs=Max("batting_set__runs"))
然后在模板上显示
{{member.max_runs}
。请注意击球设置
,而不仅仅是击球设置
——外键的默认相关的击球名称
。您可以通过在batting
处将related\u name=“batting”
添加到您的成员
外键中来改变这一点。这会进入views.py文件还是在models.py中的member类下?因此在我的视图中,我必须使这个member\u列表=member.objects.order\u by('teamsPlayedFor')。注释(max\u runs=max('batting\u runs'))。注释(min_runs=min('batting_runs'))
@Joelad:你可以在一个注释中完成,所以.annotat(max_runs=…,min_runs=…)
。哦,谢谢!我会继续的!
class MemberView(ListView):
template_name = 'tmp.html'
model = Member
def get_queryset(self):
return Member.objects.annotate(max_runs=Max('batting__runs')).all()
from django.db.models import Max
Member.objects.annotate(max_runs=Max("batting_set__runs"))