Django中Generic ListView中的多个模板

Django中Generic ListView中的多个模板,django,django-templates,django-generic-views,Django,Django Templates,Django Generic Views,我有一个对象列表,可以作为一个单独的页面或在另一个页面中查看(尽管是ajax) 因此,在我的模板中,我有一个“list_template.html”,它只有列表本身,当我在另一个页面中查看列表时使用它,还有一个“full_list_template.html”,它扩展了基本模板,并使用“include”标记将“list_模板”包含在其中 我想在这两种情况下使用相同的URL来获取项目列表。我还使用一个通用的ListView来显示对象列表 几个问题: 1) 在两种情况下使用相同的URL是一种好方法吗

我有一个对象列表,可以作为一个单独的页面或在另一个页面中查看(尽管是ajax)

因此,在我的模板中,我有一个“list_template.html”,它只有列表本身,当我在另一个页面中查看列表时使用它,还有一个“full_list_template.html”,它扩展了基本模板,并使用“include”标记将“list_模板”包含在其中

我想在这两种情况下使用相同的URL来获取项目列表。我还使用一个通用的ListView来显示对象列表

几个问题:

1) 在两种情况下使用相同的URL是一种好方法吗


2) 如果是,如何使一个URL与ListView关联并根据“请求”更改模板名称参数?

是的,您可以在两种情况下使用相同的URL,并通过检查
请求的值来设置适当的模板。is\u ajax()
。现在,不要使用
template\u name
class属性,而是重写
get\u template\u names()
方法(此方法应返回模板列表,将使用找到的第一个模板):

class MyView(ListView):
    def get_template_names(self):
        if self.request.is_ajax():
            return ['list_template.html']
        return ['full_list_template.html']