1

我有公共站点和管理站点的搜索表单。但是他们有不同的模板但相同的视图。

是否可以在 url 中传递模板名称或使用一些条件逻辑

我有这个观点

class Search(View):
    form_class = SearchForm
    #i want something like that
    if url1 == /public/search
       template_name = 'search1.html'
    else
       template_name = 'search2.html'
4

1 回答 1

1

如果你有两个单独的 url,你可以通过你的 urlconf 将变量传递给你的视图;

url(r'^public/search/$', MyView.as_view(template_name="search1.html"), name= 'public_search')
url(r'^private/search/$', MyView.as_view(template_name="search2.html"), name= 'private_search')

传递给 as_view() 的参数将分配给用于服务请求的实例。使用前面的示例,这意味着 MyView 上的每个请求都可以使用 self.size。参数必须对应于类中已经存在的属性(在 hasattr 检查时返回 True)。

于 2013-04-12T06:08:38.683 回答