我试图创建我的模型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本质上是方法和属性的容器,那么添加该字段的装饰器可能是一个优雅的解决方案吗?
感谢。
答案 0 :(得分:0)
你是对的 - 具有多个NodeModel
的多重继承 - 继承基础将不起作用。
但是,MyBaseModel
可以继承AuthUser
吗?如果没有,您也可以混合非NodeModel
类。因此,如果MyBaseModel
只是方法的容器,则可以执行
class MyBaseModelMixin(object):
....
然后从
继承class MyUser(MyBaseModelMixin, AuthUser):
....