2013-09-17 3 views
1

Я пытался создать мою модель 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 - это, по сути, контейнер методов и атрибутов, возможно, декоратор, который добавляет, что поля будут элегантным решением?

Спасибо.

ответ

0

Вы правы. Множественное наследование с несколькими NodeModel -наследующими базами не будет работать.

Однако, может MyBaseModel унаследовать от AuthUser? Если нет, вы также можете микшировать класс не NodeModel. Так что, если MyBaseModel это просто контейнер для методов, вы можете просто сделать

class MyBaseModelMixin(object): 
    .... 

, а затем наследовать от этого

class MyUser(MyBaseModelMixin, AuthUser): 
    .... 
+0

Я хочу использовать 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

+0

И на самом деле, MyUser наследует от MyBaseModel (mixin) только методы, никаких атрибутов :(Почему? – tonjo

+0

Хм, мне действительно нужна дополнительная информация, чтобы помочь с этим. обновите вопрос своими новейшими усилиями? –

Смежные вопросы