修复AJAX请求的django-tables2表的上一个/下一个分页链接

时间:2014-08-16 23:13:12

标签: django django-tables2

我正在使用django-tables2来生成我的表格。对于常规GET请求,我在上下文中返回表,并在模板中{% render_table mytable %},一切正常。但是,有时我会通过AJAX发出请求,并在视图中只返回上下文中的mytable.as_html()。这在很大程度上也可行,但分页('上一个/下一个')链接并不指向正确的URL(例如,他们可能只指向?page=2而不是page=?&myvariable1=blue&myvariable2=red

似乎render_table模板标签负责根据previous/next将这些request.GET链接指向正确的位置。是否可以仅from django_tables2.templatetags.django_tables2 import render_table并以某种方式提供render_table函数mytable和请求数据来创建具有正确分页链接的表?

我知道我可以用jQuery做到这一点,但我想先看看是否有Django解决方案。

1 个答案:

答案 0 :(得分:1)

以防它帮助其他人:

我没有将表传回给table.as_html()的AJAX调用,而是最终做了

table_str = render_to_string('django_tables2/table.html',
                             RequestContext(request,
                                            {'table': tableContext['table']}) )

这给了我把表html作为一个字符串,但差别在于Previous/Next和排序链接从添加的请求字符串中有正确的链接。当django-tables2表离开视图时,它没有正确的链接,当调用{% render_table mytable %}标记时,它们会被添加到模板中,默认情况下,它会使用django_tables2/table.html,其中{ {1}}标记执行从请求等处呈现querystring的URL的实际工作。