簡體   English   中英

具有基於類的視圖的裝飾器

[英]decorator with class based view

嗨,我有一個基於類的視圖,並且我想用某種功能來裝飾它的調度方法,以便在args / kwargs的基礎上執行一些有用的操作。 基於類的視圖的代碼如下所示:

from django.utils.decorators import method_decorator
class ProjectDetailView(FormMixin, DetailView):
    template_name = 'account/inner-profile-page.html'
    model = ProjectDetail
    form_class = CommentForm 
    context_object_name = 'project'

    @method_decorator(view_count)
    def dispatch(self, *args, **kwargs):
        return super(ProjectDetailView,self).dispatch(*args, **kwargs)

    def get_object(self, queryset=None):
        user = User.objects.get(user_slug=self.kwargs['user_slug'])
        title_slug = self.kwargs['title_slug'].replace(' ','-')
        return get_object_or_404(ProjectDetail, title_slug = title_slug, user=user)

我的簡化裝飾器看起來像這樣:

def view_count(func):
    def actual_decorator(*args, **kwargs):
        #do something useful here
        func(*args, **kwargs)
    return actual_decorator

結果是“ ProjectDetailView沒有返回HttpResponse對象”。我在哪里出錯,該怎么辦,我知道它很簡單,但這是我的第一個裝飾器,做了任何有用的事情!

您缺少return

def actual_decorator(*args, **kwargs): 
    #do something useful here 
    return func(*args, **kwargs)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM