Я пытался создать мою модель MyUser, расширяющую neo4django.auth.models.User, , поэтому я могу использовать базовую систему аутентификации. Проблема в том, что я хочу создать также суперкласс, из которого вывести множество методов и атрибутов , которые очень распространены для моего другого типа узлов.neo4django multiple inheritance
Я сделал это:
from neo4django.auth.models import User as AuthUser
class MyBaseModel(models.NodeModel):
....
class Meta:
abstract = True
class MyUser(MyBaseModel,AuthUser):
...
но любая операция на модели дает мне
ValueError: Multiple inheritance of NodeModels is not currently supported.
Предложения, обходные?
Поскольку MyBaseModel - это, по сути, контейнер методов и атрибутов, возможно, декоратор, который добавляет, что поля будут элегантным решением?
Спасибо.
Я хочу использовать MyBaseModel также для других классов, а не только для пользователей, так подмешать было бы лучше. MyBaseModel определяет некоторые общие атрибуты, Я хочу, чтобы иметь возможность искать (фильтровать) их тоже. Должен ли я писать NodeModelManager? я своего рода сделал это (названный поиск), но когда я пытаюсь использовать его: 'User.search.filter (_where_prov = "Верона") Traceback (самый последний вызов последнего): ... Файл«/ home/tonjo/venv/tuned/local/lib/python2.7/site-packages/neo4django/db/models/query.py ", строка 1222, в __init__ self._app_label = model._meta.app_label AttributeError: ' Объект NoneType 'не имеет атрибута' _meta'' – tonjo
И на самом деле, MyUser наследует от MyBaseModel (mixin) только методы, никаких атрибутов :(Почему? – tonjo
Хм, мне действительно нужна дополнительная информация, чтобы помочь с этим. обновите вопрос своими новейшими усилиями? –