Похожие чаты

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

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

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

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

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

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

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

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

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

Какие дистрибутивы Linux чаще всего работают в качестве серверов и почему?
Alex
27
Ребят, привет! Я портируюсь с войда на генту Читаю гентувики В разделе про разбивку диска указана xfs файловая система, а не ext4, как обычно Xfs имеет какие-то преимущества ...
Андрей Дыбов
21
А кто-то пробовал, уезжая из Эстонии получить э-рез и продолжить вести предпринимательскую деятельность внутри Эстонии, используя свой OÜ?
Lalalashechki Lalala
62
на тестовой партиции: Block count: 1269205 Reserved block count: 0 Free blocks: 476450 First block: 0 Block size: 4096...
Ivan Grushin
11
Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
I'm new at Monero and I'd like to ask you all - why are you in Monero? I know about privacy but what do you expect to happen in the next years, decades that Monero will make i...
Konrad
19
Is Kadena onto something special? No one really knows. Good luck!
Bright Uncle Stephen EqualBet
40
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Гайз, кто-нибудь пробовал запустить probe-rs под камень, которого нет в probe-rs? Мб есть какой-нибудь пример у кого... Через target-gen попробовал сгенерировать chip-descript...
Максим Смирнов
2
У меня одного в Сафари видео с ютюба не воспроизводится?
✨ Anatolii Cherednichenko
9
Карта сайта