django - 显示并序列化 select_related() 模型方法的结果
问题描述
我有两个简单的模型:用户(标准 Django 用户)和类 Post(models.Model):
class Post (models.Model):
name = models.CharField(max_length=100)
user = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.name
我的前端 (SPA) 发送请求以获取所有帖子,因此我的 Django API 会去获取 Post.objects.all()。但是,我还想将 User.username 拉入响应中。我的理解是我可以通过运行来做到这一点:
posts=Post.objects.select_related('user').all()
当我posts.query
从生成的 SQL 查询运行时,我可以看到正在拉入用户字段,但是当我尝试序列化此数据时似乎无法看到它们。我在这里错过了一些非常基本的东西吗?将相关数据与父数据一起序列化并与DRF Response一起发送出去的方法是什么?我已经尝试过本文中描述的方法,但是使用这种方法构建的序列化程序似乎没有为我返回相关数据:http:
//ses4j.github.io/2015/11/23/optimizing-slow-django-rest-框架性能/
解决方案
PostSerializer():
user = UserSerializer()
class Meta:
model = Post
fields = ('name', 'user')
推荐阅读
- java - 无法在 Java 中解析 Json 对象
- javascript - react-native 错误 - 检查`App`的渲染方法
- vue.js - CoreUi - 为什么 nightwatch 不能运行 e2e 测试?
- javascript - 在 jQuery 变量中传递参数
- go - 如何在 gin-gonic 和 nrgin 中的 New Relic 中捕获自定义错误消息
- zend-framework2 - EntityManager persist 期望参数 1 是一个实体对象,NULL 给定 zend 教义
- android - 为什么我的图标在安卓设备上被拉伸?
- javascript - Firebase Auth:当用户密码/电子邮件不正确时,不会出现错误消息。快速解决?
- kotlin - Kotlin 多平台项目依赖项
- python-3.x - 在列表中查找相同的值并删除重复的错误输出