首页 > 解决方案 > 如何获取查询集并为每个对象获取查询集

问题描述

例如我有这些模型:

class Teacher(models.Model):
    .....


class Student(models.Model):
    teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE)
    .....

现在,如果我想获得教师的值,我可以这样做:Teacher.objects.values("id", "name")但是如何将学生的查询集添加到教师的查询集值中?

这是 JSON 的预期输出:

{
  "id": 1,
  "name": "Alan",
  "students": [
    {
      "id": 1,
      "name": "John",
      "...": "...",
    },
    {
      "id": 2,
      "name": "Sam",
      "...": "...",
    },
    {....},
    {....},
  ]
}

注意:我知道我可以通过获取学生查询集来做到这一点,但在这种情况下,我会有很多重复的老师,所以我只希望每个老师和他的学生都作为对象数组

标签: pythondjango

解决方案


可能不是最佳答案,但您可以使用Serializeror ModelSerializerofdjango-restframework将模型序列化为json.


推荐阅读