【问题标题】:Django filter get parent model based on child model valueDjango过滤器根据子模型值获取父模型
【发布时间】:2022-08-02 15:06:57
【问题描述】:
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 最喜欢的应用程序详细信息。这是 AppA 和 AppC 是用户 A 最喜欢的应用程序

    标签: django django-models django-filter


    【解决方案1】:

    我试过这个并得到了答案

    Apps.objects.annotate(all=Exists(FavouriteApps.objects.filter(Q(user__username=self.request.user.username), app_id=OuterRef('pk')))).filter(all=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多