我想为索引页面上的每个帖子添加“编辑”链接。但在显示此链接之前;我需要检查会话是否已注册。我的意思是我需要这样的东西:
{% if session.name=='blabla' %}
<a href="#">Edit</a>
{% endif %}
我在模板上下文处理器上有 django.core.context_processors.request 。
谢谢
编辑:
这是我的详细信息页面视图:
def singlePost(request,postslug):
post = get_object_or_404(Post, slug=postslug)
context = {'post':post}
return render_to_response('detail.html',context,context_instance = RequestContext(request))
当我尝试这个时:
def singlePost(request,postslug):
session=request.session['loggedin']
post = get_object_or_404(Post, slug=postslug)
context = {'post':post}
return render_to_response('detail.html',context,context_instance = RequestContext(request,{'session':'session',}))
它给出了模板语法错误(渲染错误)
我试过这个:
{% if request.session.name=='blablabla' %}
这是错误:
TemplateSyntaxError at /post/viva-barca
Could not parse the remainder: '=='djangoo'' from 'request.session.name=='djangoo''
答案 0 :(得分:2)
如果您使用django.core.context_processors.request
并且模板使用RequestContext
呈现,那么您可以访问请求中的会话。
{% if request.session.name == 'blabla' %}
<a href="#">Edit</a>
{% endif %}
编辑:
render
快捷方式和通用视图会自动使用RequestContext
。如果您正在使用render_to_response
,则需要使用context_instance
参数传递。这在RequestContext
https://docs.djangoproject.com/en/1.4/ref/templates/api/#subclassing-context-requestcontext
答案 1 :(得分:0)
{% if post.owner == user %}
<div class="right"><a href="{% url editpost post.id %}">Edit</a></div>
{% endif %}
以这种方式;我也可以控制用户身份验证。因为有许多用户拥有自己的帐户和在index.html中列出的帖子。如果我不写这个控件; x用户可以编辑其他y用户的帖子。但现在只有登录用户才能编辑自己的帖子。
如果没有任何登录用户; &#39; EDIT&#39;链接未显示。