4

クラス ベースのビューを特定のクラス ベースのビューに委譲することは可能ですか? 具体的には、「ホーム」と呼ばれるビューと、ユーザーがログインしている場合はビュー A に、ユーザーがログインしていない場合はビュー B に委任されたホーム ビューを指定します。別の方法として、別の URL にリダイレクトします。ここで何がベストプラクティスになるかわかりません。

4

3 に答える 3

1

別の URL にリダイレクトするだけで、その URL もクラス ベースのビューによって提供されます。

urls.py

url(r'^$', HomeView.as_view(), name='home'),
url(r'^login/', LoginView.as_view(), name='login'),
url(r'^welcome/$', WelcomeView.as_view(), name='welcome')

ビュー.py

class HomeView(TemplateView):

    def get(self, request, *args, **kwargs):
        if request.user.is_authenticated():
            return HttpResponseRedirect(reverse('welcome'))
        else:
            return HttpResponseRedirect(reverse('login'))

class WelcomeView(TemplateView):

    def get(self, request, *args, **kwargs):
        #do something

class LoginView(TemplateView):

    def get(self, request, *args, **kwargs):
        #show login page
于 2013-04-25T03:07:08.073 に答える