阅读django-endless-pagination的文档,它说您可以将其Ajax分页功能扩展到基于类的视图,只需使用 @page_template() 装饰器......我一直在尝试使用该装饰器实现该装饰器一个小时:
class ExtendedListView(ListView):
template_name = 'global_template.html'
@method_decorator(@page_template('path_to_updatable_content_only_template'))
def dispatch(self, *args, **kwargs):
return super(ExtendedListView, self).dispatch(*args, **kwargs)
视图函数不会输出任何错误,但是当我转到另一个页面时,它会在目标中加载“global_template”,而不是在装饰器中定义的模板。
如果有人知道这个实现是否真的有效并且我犯了一些错误,请指出,我会很高兴以正确的方式使用它。
我设法想出了一个解决方法,所以如果有人遇到同样的问题并且对此没有合规的答案,您可以这样做:
class ExtendedListView(ListView):
template_name='global_template_path'
'''
render_to_response ¿hack? so that i can render only the updatable DOM part template
'''
def render_to_response(self, context):
if self.request.is_ajax():
self.template_name = 'path_to_updatable_content_only_template'
return super(ExtendedListView, self).render_to_response(context)
else:
return super(ExtendedListView, self).render_to_response(context)
干杯!