1

これは非常に基本的な質問です。私は django を初めて使用するからです。データベースにあるユーザーで問題なく機能するログインフォームを作成しました。問題は、たとえば「localhost:8000/Exi/index」と入力すると、メインの「ホーム」ページに移動することです。問題は、明らかに、ユーザーがログに記録されている場合にのみこのページを表示することですで。私は

class LoginRequiredMixin(object):
    @classmethod
    def as_view(cls):
        return login_required(super(LoginRequiredMixin, cls).as_view())

class Index (LoginRequiredMixin,TemplateView):
    template_name = 'index.html'  

しかし、それは私にはうまくいきません。ここでいくつかの同様の質問を調べたところ、誰もがプロジェクトでこれを修正しているように見えたので、何かが見えないのかもしれません。これは、このページの私の URL です。

url(r'^$', views.LoginView.as_view(), name='ログイン'), url(r'^index$', views.Index.as_view(), name='index')

前もって感謝します。

4

3 に答える 3

5

クラスベースのビューについては、django-bracesを使用することをお勧めしますLoginRequiredMixin

from django.views.generic import TemplateView
from braces.views import LoginRequiredMixin


class YourSecuredView(LoginRequiredMixin, TemplateView):
    template_name = "yourtemplate.html"

LoginRequiredMixin一番左の mixin でなければならないことに注意してください。

于 2014-07-04T15:27:25.000 に答える
0

サイト全体のログイン制限である場合は、https://github.com/mgrouchy/django-stronghold#strongholdを試してください。

于 2014-07-03T19:56:53.190 に答える