2012-03-22 9 views
0

私はビュー内で@login_requiredを使用しています。また、djangoの本ではデフォルトのregistration/login.htmlテンプレートを使用したくないと言っています。 。@login_required django 1.1のデコレータとテンプレート名

しかしIV試してみました:

@login_required(template_name='washtest/login.html') 

をしかし、私はエラー

login_required

を(持っている)は、どのように私は私のテンプレート名を渡すことができ、予期しないキーワード引数 'テンプレート名'

を得ました私のアプリでのログインに使用するには?このデコレータで?助けのための

Thxを

ローラン

あなたはurls.pyに許可デコレータを使用して、ユーザーがあるかどうかを確認でき https://docs.djangoproject.com/en/1.1/topics/auth/#django.contrib.auth.decorators.login_required

私はlogin_requiredで任意のテンプレートVARを見つけられませんでした

答えて

1

...ログイン:

(r"^market/$", permission_required("CHANGE", "/accounts/denied/")(CreateMarketView.as_view())) 
+0

ここではdjango doc:テンプレートregistration/login.htmlを呼びたくない場合は、URLconfのビューに余分な引数を渡してtemplate_nameパラメータを渡すことができます。たとえば、このURLconf行は、代わりにmyapp/login.htmlを使用します。 (r '^ accounts/login/$'、 'django.contrib.auth.views.login'、{'template_name': 'myapp/login。 html '}))、 redirect_field_nameをビューに渡すことで、ログイン後にリダイレクトするURLを含むGETフィールドの名前を指定することもできます。デフォルトでは、フィールドはnextと呼ばれます。 – laurent

+0

私はデコレータとtemplate_nameを使用することができると思います。私は間違っていると思います。 – laurent

+0

私はあなたがテンプレートを変更し、古いビューですべてのロジックを残すべきだと思います –

3

template_namelogin view、ないに設定することができますlogin_requiredデコレータで

login_requiredは、settings.LOGIN_URLに設定されたURLを使用します。したがって、そのURLとカスタムテンプレートを使用してビューを定義します。

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

こうしてカスタムログインテンプレートが作成されます。

関連する問題