views.py
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator
from briefcase.BaseBriefcaseView import BaseBriefcaseView
from briefcase.models import Customer
@method_decorator(login_required, name='dispatch')
class BriefcaseIndexView(BaseBriefcaseView):
model = Customer
template_name = 'briefcase/index.html'
urls.py
from django.conf.urls import url
from briefcase.views import BriefcaseIndexView, invoice_view
urlpatterns = [
url(r'^$', BriefcaseIndexView.as_view(), name='index'),
url(r'^index/invoice_view$', invoice_view.as_view(), name='invoice'),
]
BaseBriefcase.py
from cmms.views import DefaultContextView
class BaseBriefcaseView(DefaultContextView):
extra_context = {}
def get_context_data(self, **kwargs):
context = super(BaseBriefcaseView, self).get_context_data(**kwargs)
context["side_menu"] = self.get_side_menu()
context["main_menu"] = self.get_main_menu()
context["side_filter"] = self.get_side_filter()
context["module"] = "Briefcase"
return context
エラーは...とValueError:キーワード引数 `NAME`が飾られたクラスのメソッドの名前でなければなりません:
django初心者を助けてください。私は間違って何をしていますか?クラスベースのビューにlogin_required
を適用するに
を使用する必要があります。 – Alasdair
私は@ Sayseに 'LoginRequiredMixin'がちょっとしたものであることに同意します。しかし、 'method_decorator'の使用はOKです。 'DefaultContextView'には何か奇妙なことがあります。 – Alasdair
私はそれを含めるように編集しました。フィードバックありがとう – dijah