neo4django多重继承

时间:2013-09-17 12:32:57

标签: authentication multiple-inheritance neo4django

我试图创建我的模型MyUser,扩展neo4django.auth.models.User, 所以我可以使用底层的身份验证系统。问题是我想创建一个超类,从中派生出许多方法和属性 这对我不同类型的节点非常常见。

我这样做了:

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本质上是方法和属性的容器,那么添加该字段的装饰器可能是一个优雅的解决方案吗?

感谢。

1 个答案:

答案 0 :(得分:0)

你是对的 - 具有多个NodeModel的多重继承 - 继承基础将不起作用。

但是,MyBaseModel可以继承AuthUser吗?如果没有,您也可以混合非NodeModel类。因此,如果MyBaseModel只是方法的容器,则可以执行

class MyBaseModelMixin(object):
    ....

然后从

继承
class MyUser(MyBaseModelMixin, AuthUser):
    ....