django - 显示并序列化 select_related() 模型方法的结果

标签 django django-models django-rest-framework drf-queryset

我有两个简单的模型: 用户(标准 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()

当我从生成的 SQL 查询运行 posts.query 时,我可以看到用户字段被拉入,但是当我尝试序列化时我似乎看不到它们这个数据。我在这里错过了一些非常基本的东西吗?相关数据和父数据一起序列化,用DRF Response发送出去的方法是什么? 我已经尝试过本文中描述的方法,但是用这种方法构建的序列化程序似乎没有为我返回相关数据: http://ses4j.github.io/2015/11/23/optimizing-slow-django-rest-framework-performance/

最佳答案

PostSerializer():
    user = UserSerializer()
    class Meta:
        model = Post
        fields = ('name', 'user')

关于django - 显示并序列化 select_related() 模型方法的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50996306/

相关文章:

mysql - 如何在原始 django 中清理 SQL 输入

Django 休息 update_or_create

python - Django - 在 if 语句中使用模板标签

python - 相当于Python微框架的rails' "devise"?

django - 如何指定FormView模板中使用的表单变量的名称? (object_context_name 用于表单)

python - Django 静态内联

python - 为什么我的 Django 模型字段不起作用?

python - 查询集 : Compare a field with a substring of another field of the same model

python - django 对象中的 save 方法不保存 bool 模型字段,它传递的是 false

python - 如何访问 django rest 框架权限类中的 url 参数?