Я изменяю стороннее приложение Django на основе django-mptt. Я пытаюсь преобразовать одну чудовищно большую модель в базовый класс и набор примесей. Все вроде бы хорошо, однако...
class ModelMixin([see below]):
class Meta:
abstract = True
class BaseModel(ModelMixin, MPTTModel):
class Meta:
abstract = False
- Если
ModelMixin
наследуется отobject
, South не видит никаких полей, объявленных в примеси. - Если
ModelMixin
наследуется отmptt.models.MPTTModel
, дополнительные поля, которые django-mptt добавляет в модели с поддержкой MPTT, добавляются дважды; чтоdjango-mptt
не нравится, несмотря на то, что миксин абстрактный. - Самое интересное, что если
ModelMixin
наследуется отdjango.db.models.Model
, я получаю эту чертовски странную ошибку, когда пытаюсь ввести в эту модель внешний ключ:
Выслеживать:
File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/related.py"
line 900, in set_field_name
self.field_name = self.field_name or self.to._meta.pk.name
AttributeError: 'NoneType' object has no attribute 'name'