ezd*_*ena 3 django django-orm django-tables2
我使用django_tables2呈现我的表。对于一张表,我只想查看最近的5个条目。因此,我需要在将查询集传递给表对象之前对其进行排序:
qset = myObject.objects.order_by('-start_time').all()[:5]
table = MyTableClass(qset, template='path/to/template.html')
Run Code Online (Sandbox Code Playgroud)
这将产生以下错误消息:
AssertionError: Cannot reorder a query once a slice has been taken.
Run Code Online (Sandbox Code Playgroud)
我可以orderable=False为每个设置django_tables.Column,但是由于MyTableClass继承自另一个表类,因此我想避免这种情况。
提前致谢
来自:http : //django-tables2.readthedocs.io/en/latest/pages/api-reference.html#table-meta
orderable(布尔型):列的orderable属性的默认值。
如果表和列未指定值,则列的可排序值将回退到该值。这提供了一种简单的机制来禁用整个表的排序,而无需向表中的每一列添加orderable = False。
所以这解决了我的问题:
class MyTableClass(django_tables2.Table):
class Meta:
orderable = False
...
Run Code Online (Sandbox Code Playgroud)
更新: 正如@Jieter在评论中提到的那样,将其作为参数传递也应该起作用(没有检查):
table = MyTable(data, orderable=False)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
648 次 |
| 最近记录: |