O MRO do Python pode mordê-lo quando você apresenta a classe base MPTTModel para qualquer coisa que você esteja migrando, então certifique-se de que nenhuma classe base à esquerda de MPTTModel herde o próprio Model do Django. Por exemplo
from django.db import models
from mptt.models import MPTTModel
class MyMixin(models.Model):
field1 = models.IntegerField()
# Before the change
class MyModel(MyMixin, models.Model):
field2 = models.IntegerField()
# After the change
class MyModel(MPTTModel, MyMixin):
field2 = models.IntegerField()
Não fazer isso (ou seja, ter MyMixin à esquerda de MPTTModel) causará uma quebra imediata. Isso faz sentido depois que você percebe o que está acontecendo, mas demorei um pouco para encontrar o bug e decidi tentar economizar algum tempo para outras pessoas.
ATUALIZAÇÃO: Observação para migrações, há uma advertência que você deve observar ao salvar novos dados pai mencionados aqui:
- https://coderwall.com/p/zhploq?i=1&p=1&q=author%3Aexallium&t%5B%5D=exallium