当前位置:  开发笔记 > 编程语言 > 正文

对Django模板中的列表进行排序和索引?

如何解决《对Django模板中的列表进行排序和索引?》经验,为你挑选了1个好方法。

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

@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 %}
   

{{ note_type }}

{% for notes in note_sets.index(parent.forloop.counter0) %} #only want to display the notes of this note_type! {% for note in notes %}

{{ note }}

{% endfor %} {% endfor %}
{% endfor %}

谢谢一堆,皮特



1> John..:

正如其他人所指出的那样,您的两个问题最好在模板外部解决 - 无论是在模型中还是在视图中.一种策略是将辅助方法添加到相关类中.

获取医生患者的分类清单:

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

在模板中,使用physician.sorted_patients而不是physician.patients.

对于"显示此note_type的音符",听起来您可能想要一个notesnote_type类的方法.根据你的描述,我不确定这是否是一个模型类,但原理是相同的:

class NoteType:
   ...
   def notes(self):
      return 

然后是模板:

{% for note_type in note_types %}
   

{{ note_type }}

{% for note in note_type.notes %}

{{ note }}

{% endfor %}
{% endfor %}

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有