Фильтр 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)