홈>
모델 상속으로 예기치 않은 동작이 발생했습니다.
이 코드는 django shell에서 시작합니다 :
import mptt
from django.db import models
class MyTreeQuerySet(mptt.querysets.TreeQuerySet):
pass
class MyTreeManager(
models.Manager.from_queryset(MyTreeQuerySet)
):
pass
class TreeModel(mptt.models.MPTTModel):
class Meta:
app_label = 'myapp'
objects = MyTreeManager()
print(type(TreeModel.objects.all()))
이것 :
mptt.querysets.TreeQuerySet
.
그러나
MyTreeQuerySet
를 기다렸다
.
Django == 1.11 및 django-mptt == 0.9.1로 확인
사용자 정의 쿼리 세트를 사용하여 MPTTModel의 상위 항목을 작성하려면 어떻게해야합니까?
나 자신을위한 해결책 : 우리는
mptt.managers.TreeManager.from_queryset
를 사용해야한다dj_models.Manager.from_queryset
대신 . 나는MPTTModel.__new__
때문에 그것을 가정 관리자 목록 패치와 함께 마술이 있습니다. 나는 파지 않았다.