django - 检索查询集的相关数据
问题描述
我有以下模型类:
class User(models.Model):
...
class Book(models.Model):
...
class WishListRelationship(models.Model):
user = models.ForeignKey(User, db_index=True, blank=False, null=False, related_name='wishlist', on_delete=CASCADE)
book = models.ForeignKey(Book, blank=False, null=False, on_delete=CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
然后,从用户那里,我想通过一次调用数据库来获取书籍的查询集。如果这样做:
request.user.wishlist.select_related('book').all()
然后我有 WishListRelationship 的查询集,但我只想获得书籍,所以我尝试执行以下操作:
Book.objects.annotate(wished_books_ids=request.user.wishlist.all().values_list('book_id', flat=True)).filter(id__in=F('wished_books_ids'))
但我没有实现我想要的,即在 INNER JOIN 中获取相关书籍的列表。我怎么能那样做?
提前致谢
解决方案
你不需要让它变得复杂,你可以查询:
Book.objects.filter(wish_list_relationship__user=request.user)
推荐阅读
- php - how to get a specific value from api curl php
- python - 我如何使用 Beautiful Soup 来抓取我的 pandas 数据框中要使用的 URL
- vb.net - 极坐标图:修改 Y 轴标签中的数字精度
- spring-integration - Spring Intgergation aws - KinesisMessageHandler 直接通道
- assembly - 在 nasm x86_64 程序集中查找第 n 个素数
- python - 当Column匹配某些关键字时Python插入值
- swift - 将 UIAlert 的结果返回给委托方法
- c# - 如何防止我的 ASP.NET MVC 应用程序想要在 Google OAuth 之后注册用户?
- java - 使用 ModelMapper 反序列化 Json 时如何修复错误 START_ARRAY 令牌?
- typescript - 类型的泛型参数的打字稿推断不可分配