gpt4 book ai didi

python - 在 Django 模板中对列表进行排序和索引?

转载 作者:太空狗 更新时间:2023-10-30 00:25:47 24 4
gpt4 key购买 nike

在将对象传递给模板之前,如何对对象执行复杂的排序?例如,这是我的观点:

@login_required
def overview(request):
physicians = PhysicianGroup.objects.get(pk=physician_group).physicians

for physician in physicians.all():
physician.service_patients.order_by('bed__room__unit', 'bed__room__order', 'bed__order')

return render_to_response('hospitalists/overview.html', RequestContext(request, {'physicians': physicians,}))

医师对象在模板中的排序不正确。为什么不呢?

此外,如何在模板中对列表进行索引?例如,(这不起作用):

{% for note_type in note_types %}
<div><h3>{{ note_type }}</h3>
{% for notes in note_sets.index(parent.forloop.counter0) %}
#only want to display the notes of this note_type!
{% for note in notes %}
<p>{{ note }}</p>
{% endfor %}
{% endfor %}
</div>
{% endfor %}

非常感谢,皮特

最佳答案

正如其他人所指出的,您的两个问题最好在模板之外解决——在模型中或在 View 中。一种策略是向相关类添加辅助方法。

获取医生患者的排序列表:

class Physician(Model):
...
def sorted_patients(self):
return self.patients.order_by('bed__room__unit',
'bed__room__order',
'bed__order')

并且在模板中,使用 physician.sorted_pa​​tients 而不是 physician.patients

对于“显示此 note_type 的注释”,听起来您可能需要 note_type 类的 notes 方法。从你的描述我不确定这是否是一个模型类,但原理是一样的:

class NoteType:
...
def notes(self):
return <calculate note set>

然后是模板:

{% for note_type in note_types %}
<div><h3>{{ note_type }}</h3></div>
{% for note in note_type.notes %}
<p>{{ note }}</p>
{% endfor %}
</div>
{% endfor %}

关于python - 在 Django 模板中对列表进行排序和索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1191439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com