我试图创建扩展neo4django.auth.models.User的模型MyUser,这样我就可以使用底层的身份验证系统了。问题是我还想创建一个超类,从中派生出许多方法和属性,这些方法和属性对于我的不同类型的节点是非常常见的。
我这样做了:
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本质上是方法和属性的容器,也许添加字段的装饰器将是一个优雅的解决方案?
谢谢。
发布于 2013-09-18 09:16:40
你是对的-多个NodeModel-inheriting基础的多重继承将不起作用。
然而,MyBaseModel可以从AuthUser继承吗?如果没有,你也可以混入一个非NodeModel类。因此,如果MyBaseModel只是一个方法容器,那么您可以这样做
class MyBaseModelMixin(object):
....然后继承而来
class MyUser(MyBaseModelMixin, AuthUser):
....https://stackoverflow.com/questions/18849973
复制相似问题