3

我正在django 2.0.1使用django-modeltranslation 0.12.2django-mptt 0.9.0

当我尝试注册一个扩展的翻译模型时,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

class Category(MPTTModel):
    name = models.CharField(max_length=128)
    slug = models.SlugField(max_length=50)
    description = models.TextField(blank=True)
    image = models.ImageField(upload_to=category_image_path, blank=True)
    has_variants = models.BooleanField(default=True)
    parent = TreeForeignKey(
        'self', null=True, blank=True, related_name='children',
        on_delete=models.CASCADE)

我的translation.py

from modeltranslation.translator import register, TranslationOptions
from .models import Category

@register(Category)
class CategoryTranslationOptions(TranslationOptions):
    fields = ('name', 'description',)

我相信这个错误是由 和 之间的冲突引起TreeManagerMultilingualManager。我尝试将Category模型的管理器更改为默认值models.Manager,并且效果很好。

4

0 回答 0