0

我想为索引页面上的每个帖子添加一个“编辑”链接。但在显示此链接之前;我需要检查会话是否已注册。我的意思是我需要这样的东西:

{% 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''
4

2 回答 2

2

如果您正在使用django.core.context_processors.request并且模板是用 a 呈现的,RequestContext那么您可以从请求中访问会话。

{% if request.session.name == 'blabla' %}
    <a href="#">Edit</a>
{% endif %}

编辑:

ARequestContextrender快捷方式和通用视图自动使用。如果您使用render_to_response的是需要使用context_instance参数传递。这在https://docs.djangoproject.com/en/1.4/ref/templates/api/#subclassing-context-requestcontext的文档中有详细说明RequestContext

于 2012-08-31T15:44:11.090 回答
0

我找到了另一种方式。

{% if post.owner == user %}

        <div class="right"><a href="{% url editpost post.id %}">Edit</a></div>

        {% endif %}

这样 ; 我也可以控制用户身份验证。因为有很多用户拥有自己的帐户和帖子,它们都列在 index.html 中。如果我不写这个控件;x 用户可以编辑其他 y 用户的帖子。但现在只有登录用户才能编辑自己的帖子。

如果没有任何登录用户;未显示“编辑”链接。

于 2012-09-11T16:51:24.017 回答