Flask проблема с базой данных - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть следующая модель базы данных:

    @login_manager.user_loader
    def load_user(id):
       return User.query.get(int(id))

class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key = True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    password = db.Column(db.String(30), nullable=False)
    email = db.Column(db.String(100), nullable=False, unique=True)
    adverts = db.relationship('Advert', backref='autor', lazy=True)
    messages_sent = db.relationship('Message',foreign_keys='Message.sender_id', backref='author', lazy='dynamic')
    messages_received = db.relationship('Message',foreign_keys='Message.recipient_id', backref='recipient', lazy='dynamic')
    telephone = db.Column(db.String(15))

    def __repr__(self):
        return f"User('{self.username}', '{self.email}'"


class Advert(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(db.DateTime, nullable=False, default = datetime.utcnow)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable = False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    category = db.Column(db.String(50), nullable=False)
    price = db.Column(db.Integer)
    city = db.Column(db.String(), nullable=False)
    messages = db.relationship('Message', backref='messages', lazy=True)

    def __repr__(self):
        return f"Advert('{self.title}', '{self.date}', '{self.category}')"

class Message(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    sender_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    recipient_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    title = db.Column(db.String(100), nullable=False)
    body = db.Column(db.String(300), nullable=False)
    timestamp = db.Column(db.DateTime, default=datetime.utcnow)
    ad_title = db.relationship('Advert', foreign_keys='Advert.title', backref='adtitle', lazy='dynamic')

    def __repr__(self):
        return f"Message('{self.body}')"

, но связь между таблицами Message и Advert не работает. Я хочу сделать так, чтобы каждое сообщение ссылалось на заголовок объявления. Кто-нибудь знает решение этой проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...