首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >neo4django多重继承

neo4django多重继承
EN

Stack Overflow用户
提问于 2013-09-17 20:32:57
回答 1查看 61关注 0票数 1

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

我这样做了:

代码语言:javascript
复制
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本质上是方法和属性的容器,也许添加字段的装饰器将是一个优雅的解决方案?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-09-18 09:16:40

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

然而,MyBaseModel可以从AuthUser继承吗?如果没有,你也可以混入一个非NodeModel类。因此,如果MyBaseModel只是一个方法容器,那么您可以这样做

代码语言:javascript
复制
class MyBaseModelMixin(object):
    ....

然后继承而来

代码语言:javascript
复制
class MyUser(MyBaseModelMixin, AuthUser):
    ....
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18849973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档