我试图用 django-tables2 创建一个排行榜表,允许用户按所有列排序、搜索和过滤。我没有做任何特别的事情,只是按照 django-tables2 的文档进行操作。
这是它在模型中的样子:
class LeaderboardTable(tables.Table):
rank = tables.TemplateColumn('{{ record.rank }}')
name = tables.TemplateColumn('{{ record.user__first_name }} {{ record.user__last_name }}')
team = tables.TemplateColumn('{{ record.team }}')
points = tables.TemplateColumn('{{ record.points }}')
这是视图中的样子:
def get_leaderboard(request):
table = LeaderboardTable(Profiles.objects.select_related().all())
RequestConfig(request).configure(table)
return render(request, 'leaderboard.html', {'table': table})
如果您查看上面的代码,您可能会注意到名称列不正确,因为我还没有想出如果我结合到查询集中的字段时如何排序 - 如果您也能回答这个问题,那就太好了。
我喜欢 django-tables2 处理表格的创建和分页;但是,每次我点击排序/下一页或上一页时,都会导致页面刷新。有没有办法抑制这种情况?另外,我不知道是不是因为我要返回 10,000 条记录,但是 django-tables2 在排序和分页方面似乎很慢。
我为此使用了正确的应用程序吗?你们认为我应该使用其他东西吗?