Присоединение к 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"