3

ビューがあり、それがユーザーにログインします:

def login_user(request):
c = {}
c.update(csrf(request))

username = password = ''
if request.POST:
    username = request.POST.get('username')
    password = request.POST.get('password')

    user = authenticate(username=username, password=password)
    if user is not None:
        if user.is_active:
            login(request, user)
            c.update(user(request))
            return redirect('/module/')
        else:
            return redirect('/inactive/')
    else:
        return redirect('/failure/')

return render_to_response('core/auth.html',c)

スーパーユーザーの場合、django管理ページにアクセスできるため、これによりユーザーが正しくログインします。

ログインしてリダイレクトされた後、画面にユーザー名を表示したいのですが、現在使用しています

          {% if user.is_authenticated %}
            <p class="navbar-text pull-right">Welcome, {{ user.username }}. Thanks for logging in.</p>
          {% else %}
            <p class="navbar-text pull-right">Welcome, new user. Please log in.</p>
          {% endif %}

しかし、ユーザーがログインしていないと常に信じているようです。助けていただければ幸いです。

編集:ここに私のテンプレートコンテキストプロセッサがあります

TEMPLATE_CONTEXT_PROCESSORS = (
 "django.contrib.auth.context_processors.auth",
 "django.core.context_processors.debug",
 "django.core.context_processors.i18n",
 "django.core.context_processors.media",
 "django.core.context_processors.static",
 "django.core.context_processors.tz",
 "django.contrib.messages.context_processors.messages",
 "django.core.context_processors.request",
)
4

2 に答える 2

1

render()ビューを終了するには、ショートカット機能を使用することをお勧めします。

requestこれにより、オブジェクトをテンプレートに渡すことができます。

return render(request, 'core/auth.html', c)
于 2015-01-15T14:24:11.403 に答える