Python django admin/options.py类型错误:需要2个选项,给定3个

Python django admin/options.py类型错误:需要2个选项,给定3个,python,django,typeerror,Python,Django,Typeerror,编辑:根据要求,我已在下面发布了完整的回溯信息。 在删除页面模型之前,我需要一些自定义逻辑,因此我重载了delete()方法。(我知道这是一种糟糕的形式。我后来修复了它,但表达我是如何陷入这种混乱的很重要) 比如说: def delete(self, *args, **kwargs): # Do some stuff... super(Pages, self).delete() 不幸的是,当我试图通过管理界面删除页面时,这导致了以下类型错误:delete_model()接受2个

编辑:根据要求,我已在下面发布了完整的回溯信息。

在删除页面模型之前,我需要一些自定义逻辑,因此我重载了delete()方法。(我知道这是一种糟糕的形式。我后来修复了它,但表达我是如何陷入这种混乱的很重要)

比如说:

def delete(self, *args, **kwargs):
    # Do some stuff...
    super(Pages, self).delete()
不幸的是,当我试图通过管理界面删除页面时,这导致了以下类型错误:delete_model()接受2个位置参数,但给出了3个位置参数

我决定我需要正确地处理事情,因此我删除了delete方法重载,并通过以下信号处理程序实现了pre_delete逻辑:

@receiver(pre_delete, sender=Pages)
def handle_page_delete(sender, **kwargs):
    obj = kwargs['instance']


    if(obj != None):
        tmp1 = obj.prev_id
        tmp2 = obj.next_id

    if(tmp1 != None):
        tmp1.next_id = tmp2
        obj.prev_id = None

    if(tmp2 != None):
        tmp2.prev_id = tmp1
        obj.next_id = None
我遵循最佳实践,将处理程序放入信号子模块,并通过ready()将其注册到apps.py中的重载AppConfig中

不幸的是,我仍然得到了相同的错误:TypeError delete_model()接受2个位置参数,但给出了3个位置参数

然后,我将重载的delete函数重新实现为存根,我想也许我只需要在其中放入适当的选项。因此,我保留了信号逻辑,并简单地将以下内容重新添加到我的页面模型中:

def delete(self, *args, **kwargs):
    super(Pages, self).delete(*args, **kwargs)
您会注意到,这次我搜索了文档,并输入了适当的两个*args和**kwargs参数

但我仍然得到相同的类型错误:delete_model()接受2个位置参数,但给出了3个位置参数

最后,我注释掉了所有定制的删除逻辑,只使用了普通的django代码库。我仍然得到相同的错误:delete_model()接受2个位置参数,但给出了3个位置参数

有什么好处?异常位置位于my django安装本身的
django/contrib/admin/options.py
中。我以前从来没有安装过任何问题,我认为我不应该认为这是Django本身的问题。我真的认为我是在这里做错了什么,但我有点被困在没有真正的想法从这里走

任何帮助都将不胜感激。谢谢你抽出时间

编辑

根据要求,完整跟踪如下所示:

Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/admin/webcomics/pages/13/delete/

Django Version: 1.10.5
Python Version: 3.6.0
Installed Applications:
['webcomics.apps.WebcomicsConfig',
 'tinymce',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
  39.             response = get_response(request)

File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/usr/local/lib/python3.6/site-packages/django/contrib/admin/options.py" in wrapper
  544.                 return self.admin_site.admin_view(view)(*args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
  149.                     response = view_func(request, *args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  57.         response = view_func(request, *args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/django/contrib/admin/sites.py" in inner
  211.             return view(request, *args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapper
  67.             return bound_func(*args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
  149.                     response = view_func(request, *args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py" in bound_func
  63.                 return func.__get__(self, type(self))(*args2, **kwargs2)

File "/usr/local/lib/python3.6/contextlib.py" in inner
  53.                 return func(*args, **kwds)

File "/usr/local/lib/python3.6/site-packages/django/contrib/admin/options.py" in delete_view
  1718.             self.delete_model(request, obj)

Exception Type: TypeError at /admin/webcomics/pages/13/delete/
Exception Value: delete_model() takes 2 positional arguments but 3 were given

各位。所以,是的,我做错了什么。感谢Escher,他建议我查看一下我的admin.py文件。事实证明,有一些重复的重载
delete()。我把复制品处理掉后不久,一切都好了。Jon Clements也是对的。

您使用的是什么django版本?在options.py出现错误之前,回溯中是否显示了任何内容?我的意思是-您没有在某个地方的model/(model)admin/similor
delete
中命名属性?您可以发布完整的跟踪吗?该错误似乎不是来自此代码。@Escher,完成@schwobaseggl,我使用的是django版本1.10.5@Jon Clements,我本可以一直错过它,但我确实在代码中搜索了多次,以查找丢失的
delete
关键字,但没有找到任何关键字:(