python - Django:从查询集中获取具有 id 的对象
问题描述
我有这些模型(名称已更改):
class Blog(models.Model):
created_dtm = models.DateTimeField()
updated_dtm = models.DateTimeField()
title = models.CharField(max_length=200, null=True, blank=True)
creator = models.ForeignKey(Authors, on_delete=models.CASCADE, null=True, blank=True)
class BlogAuthor(models.Model):
blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
class Meta:
unique_together = ('blog', 'author')
我需要获取作者参与的所有博客(及其详细信息)。问题是每个博客可以有多个作者。
现在我可以使用以下方法获取博客 ID 的查询集:
BlogAuthor.objects.filter(author=request.user).values_list('blog_id', flat=True)
然后尝试使用 cycle 一个一个地获取每个博客for
,但是是否可以通过一个查询获取博客列表?
解决方案
只需使用反向关系:
Blog.objects.filter(blogauthor__author=request.user)
推荐阅读
- python - 无法在新文件中生成拆分值
- vba - 使用宏向特定收件人发送电子邮件
- c++ - 自动将结构数组转换为 C++ 中的数组结构
- postgresql - 使用 Postgresql 测试 SSL 连接
- postgresql - 在线执行真空
- python - Python 中的 win32.Dispatch 与 win32.gencache。优缺点都有什么?
- ruby-on-rails - 添加唯一性验证后,Rails 控制测试未通过
- ios - iOS - 如何删除 UIButton 边框颜色?
- python - 从 xml 标记获取值到 unix 中的逗号分隔文本文件
- jenkins - 脚本块内的 NonSerializableException