2

我有一个带有 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"},
                                                    ...
]
4

0 回答 0