我正在使用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解决方案。
答案 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的实际工作。