sqlalchemy отношение многие ко многим симметричны c запрос уникальных пар - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть две таблицы: users и messages. Я хочу получить уникальные значения пар отправителя и получателя. Например:

1 -> 2
1 -> 3
2 -> 1
3 -> 2

Это означает, что пользователь с id = 1 отправляет сообщение на id = 2 et c. После того как я запустил запрос для id = 2, например, я хочу получить 1,3. Фактические таблицы - после удаления ненужных вещей - ниже.

class Users(UserMixin, db.Model):
    __tablename__ = 'Users'
    id = db.Column(db.Integer, primary_key=True)
    messages_sent = db.relationship('Messages', foreign_keys='Messages.sender_id', backref='sender', 
        cascade='all, delete-orphan')
    messages_received = db.relationship('Messages', foreign_keys='Messages.recipient_id', 
        backref='recipient', cascade='all, delete-orphan')


class Messages(db.Model):
    __tablename__ = "Messages"
    id = db.Column(db.Integer, primary_key=True)
    sender_id = db.Column(db.Integer, db.ForeignKey("Users.id"))
    recipient_id = db.Column(db.Integer, db.ForeignKey("Users.id"))
    body = db.Column(db.String(140))
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...