Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication Neojango多重继承_Authentication_Multiple Inheritance_Neo4django - Fatal编程技术网

Authentication Neojango多重继承

Authentication Neojango多重继承,authentication,multiple-inheritance,neo4django,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

我试图创建我的模型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:当前不支持节点模型的多重继承。

建议、解决办法?
既然MyBaseModel本质上是一个方法和属性的容器,那么添加字段的装饰器可能是一个优雅的解决方案


谢谢。

你说得对-具有多个
节点模型的多重继承
-继承基不起作用

但是,
MyBaseModel
是否可以继承自
AuthUser
?如果没有,您还可以混入一个非
NodeModel
类。因此,如果
MyBaseModel
只是一个方法容器,那么您可以这样做

class MyBaseModelMixin(object):
    ....
然后从中继承

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

我想将MyBaseModel也用于其他类,而不仅仅是用户,所以Mixin会更好。MyBaseModel定义了一些公共属性,我希望能够搜索(过滤)这些属性。我必须写一个NodeModelManager吗?我有点这样做了(命名为search),但当我尝试使用它时:
User.search.filter(\u where\u prov=“Verona”)回溯(最近一次调用):。。。文件“/home/tonjo/venv/tuned/local/lib/python2.7/site packages/neo4django/db/models/query.py”,第1222行,在uuu init_uuuself.u app_label=model.meta.app_LabelAttributeError:'NoneType'对象没有属性meta'
,实际上,MyUser只从MyBaseModel(mixin)方法继承,没有属性:(为什么?嗯,我真的需要更多的信息来帮助解决这个问题。也许你可以用你最新的努力来更新这个问题?如果有其他问题,我