Фильтр Django получает родительскую модель на основе значения дочерней модели

class Apps(models.Model):
  app_name =  models.CharField(max_length=200)
  app_type = models.CharField(max_length=200)
  app_link = models.CharField(max_length=200)

class FavouriteApps(models.Model):
  user = models.ForeignKey(User,on_delete=models.CASCADE)
  app =  models.ForeignKey(Apps,on_delete=models.CASCADE)

Мне нужно получить информацию о всех любимых приложениях из таблицы 'Apps' на основе зарегистрированного пользователя. Пример

Таблица приложений

app_name app_type  app_link
AppA     type1     linkA
AppB     type1     linkB
AppC     type2     linkC

Любимый стол

user   app
userA  AppA
userB  AppA
userA  AppC

Итак, когда пользователь UserA вошел в систему, мне нужно получить информацию о любимых приложениях пользователя UserA, используя отношения foriengkey. Здесь AppA и AppC являются любимыми приложениями пользователяA

Я попробовал это и получил ответ

Apps.objects.annotate(all=Exists(FavouriteApps.objects.filter(Q(user__username=self.request.user.username), app_id=OuterRef('pk')))).filter(all=True)
Вернуться на верх