Python _wrapped()缺少1个必需的位置参数:';请求';:方法修饰符的问题。(Django,费率限制库)

Python _wrapped()缺少1个必需的位置参数:';请求';:方法修饰符的问题。(Django,费率限制库),python,django,Python,Django,我正在尝试使用一个方法修饰符,以便可以将修饰符应用于get_queryset方法。我的主要目标是限制每分钟GET请求的数量,以避免查询垃圾邮件。尽管如此,问题在于装饰者不断抛出标题中所写的错误。我尝试过切换顺序并添加self和request参数,但到目前为止没有成功。谢谢 费率限制库: (Ctrl-F键指向“基于类的视图”部分。) 这里有一些问题: mixin应该在视图之前列出,因此ConnectMe(LoginRequiredMixin,ListView) 方法修饰者应修饰分派方法;及 不接受

我正在尝试使用一个方法修饰符,以便可以将修饰符应用于get_queryset方法。我的主要目标是限制每分钟GET请求的数量,以避免查询垃圾邮件。尽管如此,问题在于装饰者不断抛出标题中所写的错误。我尝试过切换顺序并添加self和request参数,但到目前为止没有成功。谢谢

费率限制库: (Ctrl-F键指向“基于类的视图”部分。)


这里有一些问题:

  • mixin应该在视图之前列出,因此
    ConnectMe(LoginRequiredMixin,ListView)
  • 方法修饰者应修饰分派方法;及
  • 不接受
    请求
    参数
  • 因此,您可以这样实现:

    @method_decorator(ratelimit(key='ip', rate='1/m', method='GET'), name='dispatch')
    class ConnectMe(LoginRequiredMixin, ListView):
        model = Profile
        template_name = 'users/connect_me.html'
        context_object_name = 'profiles'
        paginate_by = 10
        
        def get_queryset(self):
            # original qs
            qs = super().get_queryset()
            # …
            return qs
    @method\u decorator(ratelimit(key='ip',rate='1/m',method='GET'),name='dispatch')
    类ConnectMe(LoginRequiredMixin,ListView):
    模型=外形
    模板名称='users/connect\u me.html'
    上下文\对象\名称='profiles'
    分页单位=10
    def get_queryset(自我):
    #原始qs
    qs=super().get_queryset()
    # …
    返回qs

    注意:在Django中,基于类的视图(CBV)通常有一个
    …View
    后缀,以避免与模型名称冲突。 因此,您可以考虑将视图类重命名为<代码> CONTROMMEView < /代码>,而不是<代码> CONTICME < /代码> .<
    感谢您如此详细的回复和额外的建议,这非常有帮助!工作非常好,没有错误!
    @method_decorator(ratelimit(key='ip', rate='1/m', method='GET'), name='dispatch')
    class ConnectMe(LoginRequiredMixin, ListView):
        model = Profile
        template_name = 'users/connect_me.html'
        context_object_name = 'profiles'
        paginate_by = 10
        
        def get_queryset(self):
            # original qs
            qs = super().get_queryset()
            # …
            return qs