我计划创建一个包含更改元素的侧边栏(取决于当前的url和身份验证状态)。在
例如:默认侧边栏显示登录名和标记云。在
/tagcloud
,我想在侧边栏中隐藏它。在实际上,我需要一种方法,使我能够在一个视图中执行以下操作:
def some_view(request):
if request.user.is_authenticated():
sidebar.remove('login')
sidebar.add('user_menu')
def tag_cloud(request):
sidebar.remove('tag_cloud')
之后,我想将sidebar
(隐式地,不传递给render_to_response
)传递到模板,在那里我可以执行如下操作:
这可能吗?在
你最好在一定的背景下这样做_处理器.py文件
这也意味着你必须use a RequestContext when returning your views
然后在模板中:
^{pr2}$在本例中,登录窗体指向一个固定视图,
如果你想在everyview上看到登录表单,我不知道该怎么做
编辑:如果不使用Django的CSRF功能,只需在基本模板中插入登录表单,而不使用任何Django表单并指向登录视图:
@Dominique的答案是正确的,但是当你在
context_processors
中写东西的时候,这会在网站的任何页面加载。这可能会造成性能问题。在我认为处理动态侧边栏的正确方法是
simpletag
,并在需要的地方使用。在现在只需在模板文件中使用:
^{pr2}$另外,您可以将
request
传递给simpletag
,以使用user.is_authenticated
进行经过身份验证的用户访问。在是的,但是你可以使用模板继承和合成。然后在所有模板中使用/继承的父模板中包含侧栏。然后很容易找到侧边栏的模板:它在一个单独的文件中。在
相关问题 更多 >
编程相关推荐