我有一个带有 ManyToManyField 的模型到另一个模型。我想获取 JSON 返回的特定记录的所有信息(包括来自其他模型的相关信息)。
在发布我的问题之前,我已经阅读了这个,但它与我正在寻找的不同。我没有使用活塞。
模型.py
class Subject(models.Model):
description = models.CharField(max_length=200)
def __unicode__(self):
return self.description
class Practice(models.Model):
title = models.CharField(max_length=200)
main_subject = models.ForeignKey(to=Subject)
related_subjects = models.ManyToManyField(to=Subject, related_name="practices")
def __unicode__(self):
return "%s" % (self.title)
我实现了一个通用列表视图,它以 json 格式返回练习实例列表......
列表视图.py
class PracticeListView(ListView):
def get_queryset(self):
return Practice.objects.all()
class PracticeListViewJSON(PracticeListView):
def get(self, request, *args, **kwargs):
queryset = self.get_queryset()
json_serializer = serializers.get_serializer("json")()
data = json_serializer.serialize(queryset, ensure_ascii=False)
return HttpResponse(data, content_type="application/json")
但是 json 数据并没有带来主题描述值,而只是作为 id 的引用。
json
[{"pk": 1, "model": "app.pratice", "fields": {"related_subjects": [2, 4]}}]
我该怎么做才能有这样的回报
[{"pk": 1, "model": "app.pratice",
"fields": {"related_subjects": ["model": "app.subject",
"fields": {"description": "description of the subject #1"},
"model": "app.subject",
"fields": {"description": "description of the subject #2"},
...
]