2017-03-02 13 views
0

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を適用するに

+0

を使用する必要があります。 – Alasdair

+1

私は@ Sayseに 'LoginRequiredMixin'がちょっとしたものであることに同意します。しかし、 'method_decorator'の使用はOKです。 'DefaultContextView'には何か奇妙なことがあります。 – Alasdair

+0

私はそれを含めるように編集しました。フィードバックありがとう – dijah

答えて

2

、あなたは `DefaultContextView`をご提示くださいLoginRequiredMixin

class BriefcaseIndexView(LoginRequiredMixin, DefaultContextView): 
+1

これはうまくいった!ありがとうございます – dijah

+0

忘れずに: django.contrib.auth.mixinsからインポートLoginRequiredMixin – Sharpless512

関連する問題