Похожие чаты

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

френдов
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 ответов

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

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

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

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

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

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Привет)) уже кажется эту тему перемусолили, но вот я так и не понял. Я сейчас сижу на 27дюймов 2к мониторе. На Актуальной макоси, если я куплю 27д 4к монитор: - будет ли изобр...
Vladislav Piskunov
15
Hi guys, any problem with Pulsebrige? Trying to transfer from wETH to ETH. First it tells me to connect my metamask "through mobile app" not desktop. Then I did and confirmed ...
Snowflakecrypto
13
any reference of this implementation?
BitBuddha
29
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Страшнейшая правда про списки ЦБ. С первых дней жизни P2P сферы, молодые человеки, начитавшись законодательной базы и "внутренних" документов, решили, что им противостоит сер...
Foxcool
3
&"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\dumpbin.exe" /EXPORTS C:\Users\Yeet\Tauon\vcpkg\installed\x64-window...
Martin Rys
6
Карта сайта