Python Django 2.0.5-方法签名';ContentCreateUpdateView.dispatch()';与类';视图';

Python Django 2.0.5-方法签名';ContentCreateUpdateView.dispatch()';与类';视图';,python,django,Python,Django,我正在学习Django,我正在通过示例跟踪一本书项目Django 2。在其中一个项目“构建在线学习站点”中,具有以下代码: class ContentCreateUpdateView(TemplateResponseMixin, View): module = None model = None obj = None template_name = 'courses/manage/content/form.html' def get_model(self

我正在学习Django,我正在通过示例跟踪一本书项目Django 2。在其中一个项目“构建在线学习站点”中,具有以下代码:

class ContentCreateUpdateView(TemplateResponseMixin, View):
    module = None
    model = None
    obj = None
    template_name = 'courses/manage/content/form.html'

    def get_model(self, model_name):
        if model_name in ['text', 'video', 'image', 'file']:
            return apps.get_model(app_label='courses', model_name=model_name)
        return None

    def get_form(self, model, *args, **kwargs):
        Form = modelform_factory(model, exclude=['owner', 'order', 'created', 'updated'])
        return Form(*args, **kwargs)

    def dispatch(self, request, module_id, model_name, id=None):
        self.module = get_object_or_404(Module, id=module_id, course__owner=request.user)
        self.model = self.get_model(model_name)

        if id:
            self.obj = get_object_or_404(self.model, id=id, owner=request.user)

        return super(ContentCreateUpdateView, self).dispatch(request, module_id, model_name, id)

    def get(self, request, module_id, model_name, id=None):
        form = self.get_form(self.model, instance=self.obj)
        return self.render_to_response({ 'form':form, 'object': self.obj })

    def post(self, request, module_id, model_name, id=None):
        form = self.get_form(self.model, instance=self.obj, data=request.POST, files=request.FILES)

        if form.is_valid():
            obj = form.save(commit=False)
            obj.owner = request.user
            obj.save()
            if not id:
                Content.objects.create(module=self.module, item=obj)
            return redirect('module_content_list', self.module.id)

        return self.render_to_response({'form': form, 'object': self.obj })
但我从PyCharm(我的IDE)收到一条错误消息,内容如下:

错误是:

Signature of method 'ContentCreateUpdateView.dispatch()' does not match signature of base method in class 'View' less... (Ctrl+F1) 
This inspection detects inconsistencies in overriding method signatures.
是否有办法解决问题,并查看如何开始修复错误?皮查姆到底想告诉我什么??
我正在使用Python3和DJango 2.0.5,警告告诉您类中的
def分派(self、request、module\u id、model\u name、id=None):
与类中的
def分派(self、request、*args、**kwargs)不同

但是,由于
视图
类中的方法接受
*args
**kwargs
,因此在实际运行代码时不会引起任何问题,因此可以忽略它

如果是你自己的代码,我会考虑在你的方法中使用<代码> *ARGs<代码>和<代码> *kWass。

def dispatch(self, request, *args, **kwargs):
    module_id = kwargs['module_id']
    self.module = get_object_or_404(Module, id=module_id, course__owner=request.user)
    ...

但是,由于您正在阅读一本书,我认为如果您严格遵循代码,您会遇到较少的问题。

警告告诉您,
def dispatch(self,request,module\u id,model\u name,id=None):
在您的类中与类中的
def dispatch(self,request,*args,**kwargs):
不同

但是,由于
视图
类中的方法接受
*args
**kwargs
,因此在实际运行代码时不会引起任何问题,因此可以忽略它

如果是你自己的代码,我会考虑在你的方法中使用<代码> *ARGs<代码>和<代码> *kWass。

def dispatch(self, request, *args, **kwargs):
    module_id = kwargs['module_id']
    self.module = get_object_or_404(Module, id=module_id, course__owner=request.user)
    ...
然而,由于您正在阅读一本书,我认为如果您完全遵循代码,您将遇到更少的问题