2011-12-24 4 views
1

私はこの権利をしているのか不思議です。django - ログインテンプレートの再利用

私はウェブサイトのプライベートセクションをコーディングしており、ログインウィンドウをスローするログインビューを書きました。私はこのビューをいくつかのURLに再利用して、アクセスが許可されるとすべてが別のビューに移動します。あなたがurls.py内のステートメントで引数を渡すことができるということは表示されませんので、私はログインが追加の引数redirect

def login(request, redirect): 
    code to read the login form and parse the POST input 
    if POST and loginSuccessful: 
     return redirect(request) 
    else: 
     return render_to_response('login.html', context) 

を表示しました...と、特定のURLは、それぞれ、異なるワンライナーをアクティブに作られましたlogin_to_adminとして、リダイレクト引数を指定してログインビューを返すだけです。

def login_to_admin(request): 
    return login(request, admin) 

def login_to_beta(beta): 
    return login(request, beta) 

これが適切な方法であるかどうかは不思議です。

答えて

5

あなたのURL confの中の3番目の項目は、その意志kwargsからの辞書可能 urls.py

You can, actually.

に文で引数を渡すことができるということは表示されません。ビュー関数を渡す必要があります。

(r'^my_url/$', 'login', {'redirect': admin}), 
(r'^my_other_url/$', 'login', {'redirect': beta}), 
+0

ああ、ありがとう、それを見落とした –

2

login required decoratorを使用すると、コードの管理が容易になります。

あなたのアプローチでは何も問題はありませんが、あまり一般的ではないため、予想外の動作や見落としが発生しやすくなります。

0

ログインフォームに追加フィールドを追加することもできます。 g。次に、正しいURLが含まれます。そして、フォームの検証とリダイレクトユーザのログイン後

関連する問題