使用Djangomodeltranstration注册模型进行翻译会导致MPTTMod出错

2024-10-03 21:32:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用django 2.0.1和{}和{}

当我试图注册一个扩展MPTTModel的翻译模型时,我得到了这个错误:

File "/home/peter/Desktop/dokkanz/listing/urls.py", line 3, in <module>
    from . import views
  File "/home/peter/Desktop/dokkanz/listing/views.py", line 16, in <module>
    class CategoryListView(ListAPIView):
  File "/home/peter/Desktop/dokkanz/listing/views.py", line 17, in CategoryListView
    queryset = Category.objects.root_nodes()
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/mptt/managers.py", line 72, in wrapped
    return method(self, *args, **kwargs)
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/mptt/managers.py", line 635, in root_nodes
    return self._mptt_filter(parent=None)
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/mptt/managers.py", line 72, in wrapped
    return method(self, *args, **kwargs)
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/mptt/managers.py", line 410, in _mptt_filter
    return qs.filter(**self._translate_lookups(**filters))
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/mptt/managers.py", line 100, in get_queryset
    self.tree_id_attr, self.left_attr
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/modeltranslation/manager.py", line 379, in order_by
    return super(MultilingualQuerySet, self).order_by(*new_args)
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/django/db/models/query.py", line 1013, in order_by
    obj = self._chain()
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/django/db/models/query.py", line 1156, in _chain
    obj = self._clone()
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/modeltranslation/manager.py", line 234, in _clone
    return super(MultilingualQuerySet, self)._clone(**kwargs)
TypeError: _clone() got an unexpected keyword argument '_rewrite'
kanz/lib/python3.6/site-packages/mptt/managers.py", line 72, in wrapped
    return method(self, *args, **kwargs)
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/mptt/managers.py", line 635, in root_nodes
    return self._mptt_filter(parent=None)
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/mptt/managers.py", line 72, in wrapped
    return method(self, *args, **kwargs)
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/mptt/managers.py", line 410, in _mptt_filter
    return qs.filter(**self._translate_lookups(**filters))
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/mptt/managers.py", line 100, in get_queryset
    self.tree_id_attr, self.left_attr
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/modeltranslation/manager.py", line 379, in order_by
    return super(MultilingualQuerySet, self).order_by(*new_args)
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/django/db/models/query.py", line 1013, in order_by
    obj = self._chain()
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/django/db/models/query.py", line 1156, in _chain
    obj = self._clone()
  File "/home/peter/.virtualenvs/dokkanz/lib/python3.6/site-packages/modeltranslation/manager.py", line 234, in _clone
    return super(MultilingualQuerySet, self)._clone(**kwargs)
TypeError: _clone() got an unexpected keyword argument '_rewrite'

我的models.py

^{pr2}$

我的translation.py

^{3}$

我相信这个错误是由TreeManager和{}之间的冲突引起的。我试图将Category模型的管理器改为默认的models.Manager,效果很好。在


Tags: inpyselfhomereturnlibpackagesline