Authentication Neojango多重继承
我试图创建我的模型MyUser扩展neo4django.auth.models.User, 因此,我可以使用底层身份验证系统。问题是我还想创建一个超类,从中派生许多方法和属性 这对于我的不同类型的节点来说非常常见 我这样做: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
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)方法继承,没有属性:(为什么?嗯,我真的需要更多的信息来帮助解决这个问题。也许你可以用你最新的努力来更新这个问题?如果有其他问题,我