Как создать связь один ко многим(one2many) в одной табице SqlAlchemy

У меня есть таблица Comment. Приложение подразумевает возможность отвечать на другие комментарии. Я бы хотел чтобы таблица содержала id комментария на который ответили, и "свои" ответы (то есть комментарии которые являются ответами на текущий. Как это сделать?

import sqlalchemy as sa
from datetime import datetime
from .db_session import SqlAlchemyBase


class Comment(SqlAlchemyBase):
    __tablename__ = 'comments'

    id = sa.Column(sa.Integer, primary_key=True, autoincrement=True)
    text = sa.Column(sa.String)
    like = sa.Column(sa.Integer, default=0)
    dislike = sa.Column(sa.Integer, default=0)
    create_time = sa.Column(sa.DateTime, default=datetime.now)

    author = sa.orm.relationship('User', back_populates='comments')
    author_id = sa.Column(sa.Integer, sa.ForeignKey('users.id'))

    post = sa.orm.relationship('Post', back_populates='comments')
    post_id = sa.Column(sa.Integer, sa.ForeignKey('posts.id'))

    answer_id = sa.Column(sa.Integer, sa.ForeignKey('comments.id')) # на что ответили (id)
    answer = sa.orm.relationship('Comment')  # на что ответили (объект)
    answers = sa.orm.relationship('Comment', back_populates='answer_id')  # что нам ответили (list)

Текущий вариант выдаёт ошибку

sqlalchemy.exc.InvalidRequestError: back_populates on relationship 'Comment.answers' refers to attribute 'Comment.answer_id' that is not a relationship.  The back_populates parameter should refer to the name of a relationship on the target class.

Ответы (1 шт):

Автор решения: Bobrovnikov Vladimir

Ссылка на эту же таблицу строится через remote_side.

Т.е. так:

answer = sa.orm.relationship('Comment', remote_side=[id], backref='answers')

Документация.

→ Ссылка