Присоединение к django несвязанных моделей

У меня есть 3 модели, и я хотел бы объединить их и запросить в одном запросе. Однако 2 из них не имеют внешних ключей друг к другу, поэтому я не могу использовать опцию select_related().

Могу ли я обратиться к вам за помощью? Спасибо

Вот схема модели:

class UserGroup(models.Model):
    group_name = models.CharField(max_length=80)
    user_id = models.CharField(max_length=20)

class StrategyUserGroupRel(models.Model):
    strategy = models.ForeignKey(Strategy, on_delete=models.PROTECT)
    user_group = models.ForeignKey(UserGroup, on_delete=models.PROTECT, to_field='group_name')


class SignalStrategyRel(models.Model):
    signal = models.ForeignKey(Signal, on_delete=PROTECT)
    strategy = models.ForeignKey(Strategy, on_delete=PROTECT)
  • Моей точкой входа будет "user_id"
  • Сначала я хочу получить все "имя_группы", связанные с этим "user_id".
  • Затем, я хочу получить "стратегию", с которой связано "имя_группы" (может быть быть несколько стратегий)
  • .
  • Наконец, мне нужен "сигнал", с которым связана "стратегия" (может быть несколько сигналов)
  • .

В SQL это будет выглядеть следующим образом:

select * from strategy_user_group_rel sugr 
    inner join user_group ug 
    on sugr.user_group = ug.group_name 
       inner join signal_strategy_rel ssr
       on ssr.strategy_id = sugr.strategy_id
    where ug.user_id = "test_user"
Вернуться на верх