У меня есть модель Flask/SQLAlchemy под названием Subscription, которая связана со многими другими моделями (подписчиками, платежами и т. Д.). Теперь мне нужно соединить две подписки, где одна подписка иногда называется «благодетелем» по отношению к другой подписке, называемой ее «получателем». Это необязательная индивидуальная реляционная модель.Flask/SQLAlchemy - синтаксис отношения один к одному
Когда я попробовать следующее:
class Base(db.Model):
__abstract__ = True
id = db.Column(db.Integer, primary_key=True)
class Subscription(Base):
__tablename__ = 'subscriptions'
benefactor_id = db.Column(db.Integer, db.ForeignKey('subscriptions.id'))
recipient = relationship('Subscription', uselist=False, backref='benefactor')
Я получаю ошибку:
Subscription.recipient and back-reference Subscription.benefactor are both
of the same direction symbol('ONETOMANY'). Did you mean to set remote_side
on the many-to-one side ?
Это прекрасно работает только с определением benefactor_id, но перерывы на декларации отношения. Какие-либо предложения? Я не понимаю эту ошибку - из моего чтения документации, uselist = False должен предотвратить эту проблему.
кажется, что это поле не доступно для справки в этой точке, так как таблица самоссылающаяся: «AttributeError: объект„Таблица“не имеет атрибута„идентификатор“» – Joseph
Вы не имеете идентификатора в таблице «Подписки»? –
Я бы подумал, что должен использовать benefactor_id. У меня есть id в моем базовом классе: класс Base (db.Model): __abstract__ = True id = db.Column (db.Integer, primary_key = True) – Joseph