GAE / Django-nonrel を使用して簡単なアプリを作成します (問題は GAE または nonrel フォークに固有のものではないと思います。ほとんどの場合、python/django noob として PEBKAC が発生し、基本的な django インストールで発生します)。
認証に django.contrib.auth を使用しています。
settings.py で
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware', )
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.request', )
manage.py でスーパーユーザーを作成しました
{% extends 'base.html' %} によって他のテンプレートで使用されている base.html のテンプレートを以下に示します。
{% if user.is_authenticated %}
Hello {{ user.username }}
[<a href="{% url django.contrib.auth.views.logout %}">sign out</a>]
{% else %}
[<a href="{% url django.contrib.auth.views.login %}">sign in</a>]
{% endif %}
そして urls.py では、標準の認証関連のもの (django.contrib.auth.forms から AuthenticationForm などをインポートします)。
問題は、正常に認証でき、ユーザー名/パスワードのチェックが機能しており (正しくないユーザー/パスワードを使用できない)、管理ページで認証されているが、他のページでは認証されていないことです。 )。
「 django.contrib.auth.context_processors.auth 」がこれを実現する魔法だと思いますが、上記のように settings.py で設定されています。
この問題を追跡する方法に関するヒントはありますか?
編集(コメントでコードの書式設定を行うことができないため、ダニエルの回答を拡張)
私が持っていたviews.pyで:-
def detail(request):
obj = get_object_or_404(MyModel, pk=some_id)
return render_to_response('myapp/index.html', {'MyModel': obj})
になるはずだった
return render_to_response('myapp/index.html', {'MyModel': obj}, RequestContent(request))