neo4j-contrib / neomodel

An Object Graph Mapper (OGM) for the Neo4j graph database.
https://neomodel.readthedocs.io
MIT License
963 stars 232 forks source link

dynamic relationship in an abstract node #654

Open baltamar3 opened 1 year ago

baltamar3 commented 1 year ago

How can I create a dynamic relationship in an abstract node which points to the same type of node that inherits from my Basenode?

I have tried using "Self" but it doesn't work

class BaseNode(StructuredNode):
    __abstract_node__ = True

    public_id = UniqueIdProperty()
    created_at = DateTimeProperty(default=timezone.now)
    deleted_at = DateTimeProperty()
    next_c = RelationshipTo(
        "self",
        "NEXT_C",
        cardinality=ZeroOrOne,
    )
class Phase(BaseNode):
  pass

class Model(BaseNode):
  pass

Example:

type(Phase.nodes.all(0).next_c.single()) == Phase
type(Model.nodes.all(0).next_c.single()) == Model