Самостоятельные отношения в SQLAlchemy

Мне нужно создать SQLAlchemy версию связанного списка. Это'Это на самом деле сложнее, чем это, но это сводится к следующему:

мне нужновзаимно-однозначные, двусторонние отношения в классе. Каждый элемент может иметь только одного родителя или вообще не иметь его и иметь до одного дочернего элемента.

Я упростил свой класс, чтобы он выглядел так:

class Node(declarative_base()):
    __tablename__ = 'nodes'

    id = Column(Integer, Sequence('nodes_id_seq'), primary_key=True, autoincrement=True)
    value = Column(Integer)
    prev_node_id = Column(Integer, ForeignKey('nodes.id'))
    next = relationship('Node', uselist=False, backref=backref('prev', uselist=False))

Однако, когда я пытаюсь создать его, он выдает исключение:

>>> Node()
Traceback (most recent call last):
  File "", line 1, in 
  File "", line 2, in __init__
  File "sqlalchemy\orm\instrumentation.py", line 309, in _new_state_if_none
    state = self._state_constructor(instance, self)

[...]

  File "sqlalchemy\orm\properties.py", line 1418, in _generate_backref
    self._add_reverse_property(self.back_populates)
  File "sqlalchemy\orm\properties.py", line 871, in _add_reverse_property
    % (other, self, self.direction))
ArgumentError: Node.next and back-reference Node.prev are both of the same direction 

Ответы на вопрос(1)

Ваш ответ на вопрос