【问题标题】:Django - TypeError: _clone() takes exactly 1 argument (3 given)Django - TypeError: _clone() 只需要 1 个参数(给定 3 个)
【发布时间】:2026-01-17 08:25:01
【问题描述】:

我正在尝试将django_quiz GITHUB 应用程序安装到我的Django 项目中。我已经完成了“安装”自述文件中的所有内容,但它引发了错误:

return super(InheritanceQuerySetMixin, self)._clone(klass, setup, **kwargs)
TypeError: _clone() takes exactly 1 argument (3 given)

原来如此

  1. python pip install Pillow, pip install django-model-utils
  2. 将文件从 GitHub 克隆到 Django 文件夹目录(有 manage.py、apps 目录等)。
  3. cd django_quiz
  4. python setup.py install
  5. 'quiz', 'multichoice', 'true_false', 'essay' 添加到INSTALLED_APPS
  6. url(r'^q/', include('quiz.urls')) 添加到urlpatterns (urls.py)

在此之后,我尝试python manage.py runserver 并引发了错误。所以我已经尝试过 makemigrations 但发生了同样的错误。

这是来自 cmd 行的整个回溯(runserver 之后):

C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\venv\lib\si
te-packages\django_model_utils-2.0.3-py2.7.egg\model_utils\managers.py:106: Remo
vedInDjango110Warning: 'get_all_related_objects is an unofficial API that has be
en deprecated. You may be able to replace it with 'get_fields()'
  rel for rel in model._meta.get_all_related_objects()

C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\venv\lib\si
te-packages\django_model_utils-2.0.3-py2.7.egg\model_utils\managers.py:106: Remo
vedInDjango110Warning: 'get_all_related_objects is an unofficial API that has be
en deprecated. You may be able to replace it with 'get_fields()'
  rel for rel in model._meta.get_all_related_objects()

Unhandled exception in thread started by <function wrapper at 0x033284F0>
Traceback (most recent call last):
  File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\ven
v\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\ven
v\lib\site-packages\django\core\management\commands\runserver.py", line 109, in
inner_run
    autoreload.raise_last_exception()
  File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\ven
v\lib\site-packages\django\utils\autoreload.py", line 249, in raise_last_excepti
on
    six.reraise(*_exception)
  File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\ven
v\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\ven
v\lib\site-packages\django\__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\ven
v\lib\site-packages\django\apps\registry.py", line 115, in populate
    app_config.ready()
  File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\ven
v\lib\site-packages\django\contrib\admin\apps.py", line 22, in ready
    self.module.autodiscover()
  File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\ven
v\lib\site-packages\django\contrib\admin\__init__.py", line 26, in autodiscover
    autodiscover_modules('admin', register_to=site)
  File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\ven
v\lib\site-packages\django\utils\module_loading.py", line 50, in autodiscover_mo
dules
    import_module('%s.%s' % (app_config.name, module_to_search))
  File "c:\python27\Lib\importlib\__init__.py", line 37, in import_module
    __import__(name)
  File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\ven
v\lib\site-packages\django_quiz_app-0.5.1-py2.7.egg\quiz\admin.py", line 16, in
<module>
    class QuizAdminForm(forms.ModelForm):
  File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\ven
v\lib\site-packages\django_quiz_app-0.5.1-py2.7.egg\quiz\admin.py", line 29, in
QuizAdminForm
    queryset=Question.objects.all().select_subclasses(),
  File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\ven
v\lib\site-packages\django_model_utils-2.0.3-py2.7.egg\model_utils\managers.py",
 line 48, in select_subclasses
    new_qs = self.select_related(*subclasses)
  File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\ven
v\lib\site-packages\django\db\models\query.py", line 852, in select_related
    obj = self._clone()
  File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\ven
v\lib\site-packages\django_model_utils-2.0.3-py2.7.egg\model_utils\managers.py",
 line 61, in _clone
    return super(InheritanceQuerySetMixin, self)._clone(klass, setup, **kwargs)
TypeError: _clone() takes exactly 1 argument (3 given)

你知道问题出在哪里吗?

【问题讨论】:

    标签: python django python-2.7


    【解决方案1】:

    转到 manager.py 中的 InheritanceQuerySetMixin 类,删除参数 klass,从 def _clone() 设置, 然后运行 ​​python manage.py makemigrations 进行测验、论文、多项选择、true_false 和, 运行 python manage.py migrate 和 然后最后运行 python manage.py runserver 8000

    【讨论】: