Django-如何从模板访问会话状态

Django-如何从模板访问会话状态,django,django-templates,django-sessions,Django,Django Templates,Django Sessions,我想为索引页上的每个帖子添加一个“编辑”链接。但是在展示这个链接之前;我需要检查会话是否已注册。我的意思是我需要这样的东西: {% if session.name=='blabla' %} <a href="#">Edit</a> {% endif %} 当我尝试这个: def singlePost(request,postslug): session=request.session['loggedin'] post = get_object_o

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

{% if session.name=='blabla' %}
    <a href="#">Edit</a>
{% endif %}
当我尝试这个:

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''

如果您使用的是
django.core.context\u processors.request
,并且模板是用
RequestContext
呈现的,那么您可以在请求之外访问会话

{% if request.session.name == 'blabla' %}
    <a href="#">Edit</a>
{% endif %}
{%if request.session.name==“blablabla”}
{%endif%}
编辑:


快捷方式和常规视图会自动使用
RequestContext
。如果使用的是
render\u to\u response
is,则需要使用
context\u实例
参数传递。这在
RequestContext

的文档中有详细说明。我找到了一种不同的方法

{% if post.owner == user %}

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

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


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

是否使用请求上下文呈现模板?你能解释一下吗?它不起作用。我想我做错了什么事。请参阅我的问题更新。它不起作用。没有错误。但是没有起作用。我登录到管理员页面。然后返回索引页。但看不到“编辑”字符串。我已经添加了视图(第二个视图)。您的视图中没有任何设置
session['name']
它现在工作了。但当我注销时:键错误“name”。它必须消失。如果出现错误,则应包含完整的回溯。视图文件中应包含用户模型的上下文,以便在模板文件中使用它。
{% if post.owner == user %}

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

        {% endif %}