9

私の見解では、request.user.username を出力できますが、テンプレートでは {{request.user.username}} は表示されません。これを簡単にするために、関数からロジックを削除し、render_to_response と RequestContext をインポートしています。

from django.shortcuts import render_to_response
from django.template import RequestContext

@login_required
@csrf_protect
def form(request):
    print request.user.username
    data = {}
    return render_to_response('form.html', data, context_instance=RequestContext(request))   

私の推測では、settings.py に問題があると思います。

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'django.contrib.admindocs',
    'src',
)

よろしくお願いします。

4

2 に答える 2

5

RequestContextTEMPLATE_CONTEXT_PROCESSORSのドキュメントを確認してください。

requestテンプレートコンテキストになりたい場合はdjango.core.context_processors.requestTEMPLATE_CONTEXT_PROCESSORS設定に含める必要があります。デフォルトではありません。

ただし、Tadeckが彼の回答で指摘したように、デフォルト設定を使用している場合は、がのデフォルトリストの一部であるuserため、すでに利用可能です。django.contrib.auth.context_processors.authTEMPLATE_CONTEXT_PROCESSORS

于 2012-04-15T01:50:00.717 に答える