我有公共站点和管理站点的搜索表单。但他们有不同的模板但视图相同。
是否可以在网址中传递模板名称或使用某些条件逻辑
我有这个观点
class Search(View):
form_class = SearchForm
#i want something like that
if url1 == /public/search
template_name = 'search1.html'
else
template_name = 'search2.html'
答案 0 :(得分:1)
如果你有两个独立的网址,你可以通过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)。