0

私はジャンゴが初めてです。問題: 私のホームページを見る (デフォルトの django ログインフォームを表示する)

私は住所を書かなければなりません:

xxxxxx:8001/ログイン

それを介して直接アクセスしたいと思います:

xxxxxx:8001

xxxxxx:8001 と入力すると、フォームのないログイン ページが表示されます。

私は持っている:

私のurls.pyで:

urlpatterns = patterns('',
    url(r'^$', 'license.views.index', name='auth_login'),

私のviews.pyで

from django import template
from django.shortcuts import render_to_response
from django.views.decorators.vary import vary_on_cookie

@vary_on_cookie
def index(request):
    return render_to_response('login.html', {
    }, context_instance = template.RequestContext(request))
4

1 に答える 1

1

これは、フォームにログイン フォーム インスタンスを渡していないためです。

ビューでカスタム処理を実行したくない場合は、Django の組み込みログイン ビューを使用することをお勧めします。カスタム テンプレートを設定できます。

url(r'^$', 'django.contrib.auth.views.login', {'template_name': 'login.html'})

詳細については、このページを参照してください: django.contrib.auth.views.login (v1.5) docs

ビューでデコレータを使用していることがわかります。これは、実際にカスタム処理を実行したいということを意味します。その場合、django.contrib.auth.forms.AuthenticationFormを使用したいと思うでしょう。ビューで次のようなことを試してください。

from django.contrib.auth.forms import AuthenticationForm
from django.shortcuts import render
from django.views.decorators.vary import vary_on_cookie

@vary_on_cookie
def index(request):
    form = AuthenticationForm(data=request.POST or None)

    return render(request, 'login.html', {
        'form': form
    })
于 2012-11-09T17:34:13.973 に答える