是否可以在DJango模板中对一组相关项目进行排序?

也就是说:此代码(为清晰起见,省略了HTML标记):

{% for event in eventsCollection %}

{{ event.location }}

{% for attendee in event.attendee_set.all %}

{{ attendee.first_name }} {{ attendee.last_name }}

{% endfor %}

{% endfor %}

显示几乎完全想要我想要的。 我唯一要更改的是我要按姓氏排序的与会者列表。 我试图说这样的话:

{% for event in events %}

{{ event.location }}

{% for attendee in event.attendee_set.order_by__last_name %}

{{ attendee.first_name }} {{ attendee.last_name }}

{% endfor %}

{% endfor %}

las,上面的语法不起作用(它产生一个空列表),我想到的任何其他变体也没有(报告了很多语法错误,但没有喜悦)。

在我看来,我当然可以产生某种类型的已排序与会者列表,但这是一个丑陋且脆弱(我提到过丑陋)的解决方案。

不用说,但无论如何我还是会说,我仔细阅读了在线文档,搜索了Stack Overflow和django-user的档案,却没有发现任何帮助(啊,如果只有查询集是字典dictsort会做的事情, 工作,但不是,不是)

==============================================

编辑以添加其他想法接受陶玛斯的回答后。

Tawmas完全按照我介绍的方式解决了这个问题-尽管解决方案不是我期望的。 结果,我学到了一种可以在其他情况下使用的有用技术。

汤姆的答案提出了一种方法,我已经在我的OP中提到过,但暂时拒绝了这种方法“丑陋”。

“丑陋”是一种直觉,我想澄清一下这是怎么回事。 这样做的时候,我意识到这是一个丑陋的方法,是因为我对将查询集传递到要呈现的模板的想法感到困惑。 如果我放宽要求,那么应该采取一种不丑陋的方法。

我还没有尝试过,但是假设视图代码没有传递查询集,而是遍历了查询集,生成了事件列表,然后用针对WAS排序(或过滤,过滤, 或其他任何方式)。 像这样:

eventCollection = []

events = Event.object.[filtered and sorted to taste]

for event in events:

event.attendee_list = event.attendee_set.[filtered and sorted to taste]

eventCollection.append(event)

现在,模板变为:

{% for event in events %}

{{ event.location }}

{% for attendee in event.attendee_list %}

{{ attendee.first_name }} {{ attendee.last_name }}

{% endfor %}

{% endfor %}

缺点是视图必须立即“实现”所有事件,如果存在大量事件,这可能会成为问题。 当然,可以增加分页功能,但这会使视图变得相当复杂。

好的一面是视图所属的视图中的“准备要显示的数据”代码,使模板着重于格式化视图提供的数据以进行显示。 这是正确的。

所以我的计划是将Tawmas的技术用于大桌子,将上述技术用于小桌子表,其大小由读者决定(笑)

python临时排序_python-在Django临时目录中对相关项目进行排序相关推荐

  1. python open 函数漏洞_python和django的目录遍历漏洞

    (20210205学习笔记) 攻击者通过请求 http://220.181.185.228/../../../../../../../../../etc/sysconfig/network-scrip ...

  2. python读取文件并且排序_python 顺序读取文件夹下面的文件(自定义排序方式)...

    我们在读取文件夹下面的文件时,有时是希望能够按照相应的顺序来读取,但是 file_lists=os.listdir()返回的文件名不一定是顺序的,也就是说结果是不固定的.就比如读取下面这些文件,希望能 ...

  3. c++ 多个字符串排序_Python小白干货宝典:sorted()函数:列表元素排序

    定义: sorted() 函数对所有可迭代的对象进行排序操作. 内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作. 语法: sorted 语法: sorted(i ...

  4. mysql联合索引排序_对mysql联合索引中的字段进行合理排序

    在MySQL的where条件中,有时会用到很多的条件,通常为了加快速度会把这些字段放到联合索引中,可以更快的提高搜索速度: 但是对联合索引中字段顺序的合理排序,便更能提高速度 例子:select * ...

  5. python动物重量排序_python动物重量排序_Python小白干货宝典:sorted()函数:列表元素排序...

    定义: sorted() 函数对所有可迭代的对象进行排序操作. 内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作. 语法: sorted 语法: sorted(i ...

  6. python遍历文件夹排序_python 顺序读取文件夹下面的文件(自定义排序方式)

    我们在读取文件夹下面的文件时,有时是希望能够按照相应的顺序来读取,但是 file_lists=os.listdir()返回的文件名不一定是顺序的,也就是说结果是不固定的.就比如读取下面这些文件,希望能 ...

  7. python url配置单独放在某个应用目录中

    文件目录: 将 urls.py 文件复制blog目录下: 此时,blog文件夹下多了urls.py文件 现在对比,两个urls.py文件: 分离前:(只有website里有urls.py) 1 fro ...

  8. python echo函数_python如何调用php文件中的函数详解

    前言 python调用php代码实现思路:php文件可通过在terminal中使用php命令行进行调用,因此可使用python开启子进程执行命令行代码.函数所需的参数可通过命令行传递. 测试环境 1. ...

  9. python 轮廓矩阵_python – 在3D numpy矩阵中绘制给定值的曲面轮廓

    我有三个对应于xyz坐标空间的3D网格矩阵(X,Y,Z). 我还有一个3D Numpy矩阵A,其中A [i,j,k]包含一个与点(x,y,z)相关联的浮点数,其中x = X [i,j,k],y = Y ...

最新文章

  1. DCMTK:DcmFloatingPointDouble类的测试程序
  2. LVS(11)——wrr
  3. s3c2440第一个裸奔程序——跑马灯(转)
  4. mysql 结果集 超大_使用MySQL流式传输大型结果集
  5. 楼房顶顶面起渣是何原因?怎么修补?
  6. Ubuntu-20.04开机黒屏出现“dev/sda ... clean ... blocks”的信息
  7. 吴恩达神经网络和深度学习-学习笔记-31-池化层
  8. React移动端h5日历组件react-h5-calendar周日历 月日历 周视图 月视图自定义标记点
  9. matlab车牌自动定位,超级实用的车牌定位matlab程序
  10. 数字移动c语言课程设计,《移动应用开发》课程设计.doc
  11. python并行编程 - GPU篇
  12. 802.11ac物理层
  13. 移动机器人传感器——GNSS
  14. 隐函数存在定理1的几何解释
  15. 技术胖Web前端视频教程合集
  16. node+express实现文件上传功能
  17. Iperf测试问题处理指南
  18. lambda no instance(s) of type variable(s) T exist so that void conforms to R
  19. Unity3D获取游戏对象组件的三种方式
  20. 沈阳大学计算机李华,计算机自适应考试曝光率控制-数学专业毕业论文.pdf

热门文章

  1. 气动调节阀的术语小知识
  2. django ORM多表联合查询
  3. QTP简单框架(7)之Excel报表
  4. Java外卖点餐系统「附全部代码」
  5. JSP基于WEB网上论坛设计与实现(源代码+论文+开题报告+答辩PPT+外文翻译)
  6. matlab三维路径规划,【路径规划】基于A星算法的三维路径规划matlab源码
  7. 咸鱼Maya笔记—晶格变形器
  8. tiktok小店卖家入驻指南
  9. 初级程序员要了解的行业冷知识
  10. Python实战:python操作GZ文件,实现文件压缩与解压缩