2

関数ベースのビューをクラス ベースのビューに変換し始めています。クラスベースのビューを使用するのはこれが初めてなので、正しい方法が本当にわかりません。

FBV のコード:

@auth_check
def thank_you(request):
    return render(request, 'thank_you.html')

CBV のコード:

class ThankYouView(TemplateView):
    template_name = "thank_you.html"

auth_check デコレータをどこに配置しますか? クラスの一番上に入れようとしましたが、エラーが発生しました。次に、クラス内に def を作成し、その上にデコレータを配置しましたが、それでもエラーが発生しました。

4

1 に答える 1

3

https://docs.djangoproject.com/en/dev/topics/class-based-views/intro/#decorating-the-class

クラスベースのビューを使用して、メソッドを装飾しますdispatch

from django.utils.decorators import method_decorator

class ThankYouView(TemplateView):
    template_name = "thank_you.html"

    @method_decorator(auth_check)
    def dispatch(self, *args, **kwargs):
        return super(ThankYouView, self).dispatch(*args, **kwargs)
于 2013-03-03T16:29:24.887 に答える