0

登録とアルバムの 2 つのアプリがあります。ユーザーが「/」または「/home」にアクセスすると、ユーザーがログインしているかどうかに応じて、登録/ログイン フォームまたはアルバム管理ページが表示されます。

2 つの異なるアプリ間で同様の URL をディスパッチする方法について確立されたベスト プラクティスはありますか? どちらかのアプリが他のアプリについて知る必要がないように、これを構築する方法はありますか?

ありがとう!

4

3 に答える 3

2

ユーザーがログインしていないときに「ホームページ」を表示するのではなく、ユーザーがログインしていないときにログインフォームを表示する必要がある場合は、「ログインが必要」デコレーターを使用することをお勧めします。

from django.contrib.auth.decorators import login_required

@login_required
def show_home(request):
    """
    Show home page...
    """
    ...

このデコレータは、ビュー レベル (上図) または urls.py (下図) で適用できます。

url(r'^reports/', login_required(ListView.as_view(
    template_name="...",
    queryset = ...,
    context_object_name = ...
))),

2 番目のパターンは、汎用ビューとクラス ベースのビューでよく使用されます。

どちらのソリューションも、Django の組み込みのログイン/登録装置 (必要に応じてカスタマイズされたテンプレートとカスタマイズされたビューを使用) に接続していることを前提としています。カスタムの登録/認証フレームワークを使用している場合でも、デコレータ パターンを使用することをお勧めします。

于 2012-10-09T09:49:17.253 に答える
1

に設定LOGIN_URLし、ビューを/registration/loginで装飾すると、自動的にリダイレクトされます。/@login_required

于 2012-10-09T09:48:02.850 に答える
0

ユーザーがサインインするときに変数をセッションに追加し、/ または /home 要求でそれをチェックします。

于 2012-10-09T09:48:45.917 に答える