Похожие чаты

Всем привет, нуждаюсь в помощи. Делаю типа связей юзера и его

френдов
class User:
connections = relationship('Connection', foreign_keys=[Connection.user_id], back_populates='friend')
friends = relationship(
'User',
secondary='connection',
primaryjoin=and_(id == Connection.user_id, Connection.status == ConnectionStatus.connected),
secondaryjoin=id == Connection.friend_id
)

class Connection(ModelBase):
__tablename__ = 'connection'

__table_args__ = (
UniqueConstraint('user_id', 'friend_id', name='_user_friend_uc'),
)
id = Column(Integer, primary_key=True)
user_id = Column(UUID(as_uuid=True), ForeignKey('users.id'))
friend_id = Column(UUID(as_uuid=True), ForeignKey('users.id'))
status = Column(Enum(ConnectionStatus), nullable=False)
user = relationship('User', foreign_keys=[user_id])
friend = relationship('User', foreign_keys=[friend_id], back_populates='connections')

Представим что есть юзер_1 и юзер_2
юзер_1 отправил инвайт юзеру_2
Connection(user=user_1, friend=user_2)
Если текущий юзер = user_1 -> user.friends / user.connections будет работать как должно, но если текущий юзер = user_2, у меня будут пустые релейшены френдов и конекшенов.
Я вот думаю или делать конекшен "в обе стороны", типа в момент создания делать вот так:
Connection(user=user_1, friend=user_2)
Connection(user=user_2, friend=user_1) (но мне кажется это полный бред)
Или можно попробовать поправить что-то в релейшенах? Но я не понимаю что и как именно нужно поправлять. Либо у меня структура БД вообще не правильная... Как это делается? Памагите пожалуйста

3 ответов

17 просмотров
Daniel-Daniel Автор вопроса

Тишка, глянь пожалуйста 🥺

Daniel-Daniel Автор вопроса

я подождал пока холивар успокоится и все к чему-то общему придут. И начнут хейтить меня)))) Реально, пацаны, если я долбоеб так и скажите

Хранить лишние строки в бд выглядит так себе. Чтобы релейшены поправить, можешь написать кастомный prymaryjoin

Похожие вопросы

Обсуждают сегодня

Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
is that okay?
Samurai 🇯🇵
21
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
How about the project bro Likes the community not that active ?
🅿️abby_FX
19
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте товарищи. А где вы смотрите маркеры/фенотипы клеток, чтобы подобрать антитело для задачи? Есть какой-то ресурс/база данных, или всё ручками по статьям? Мне нужно ...
Abruhmed
14
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Карта сайта