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していて、テンプレートがでレンダリングされているRequestContext場合は、リクエストからセッションにアクセスできます。

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

編集:

Aは、ショートカットビューと汎用ビューRequestContextによって自動的に使用されます。render使用している場合は、引数render_to_responseを使用して渡す必要があります。context_instanceこれについては、RequestContext https: //docs.djangoproject.com/en/1.4/ref/templates/api/#subclassing-context-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 に答える