Django contstruct对象

Django contstruct对象,django,json,django-models,Django,Json,Django Models,我正在为一个应用程序开发一个后端,并编写一个函数从多个表中检索数据,然后从中构造一个httpresponse 我想做的是得到一个疫苗,然后是该疫苗的所有疾病,然后构建包含所有内容的东西(对象、列表、dict等等) 到目前为止,我得到的是: def vaccinepack(request, country_id): vaccines = Vaccine.objects.filter(diseases__countries__id=country_id) diseases = []

我正在为一个应用程序开发一个后端,并编写一个函数从多个表中检索数据,然后从中构造一个httpresponse

我想做的是得到一个疫苗,然后是该疫苗的所有疾病,然后构建包含所有内容的东西(对象、列表、dict等等)

到目前为止,我得到的是:

def vaccinepack(request, country_id):
    vaccines = Vaccine.objects.filter(diseases__countries__id=country_id)
    diseases = []
    json = serializers.get_serializer("json")()
    response = HttpResponse()
    for v in vaccines:
        dis = Disease.objects.filter(vaccine=v.id)
        disdata = ""
        for d in dis:
            disdata += json.serialize([d], ensure_ascii=False)
        json.serialize([v, disdata], ensure_ascii=False, stream=response)
    return response
但是我在序列化[v,disdata]时遇到了麻烦

'list' object has no attribute '_meta'. 
我对Django还比较陌生,所以我不确定该怎么做

以下是我的模型:

class Disease(models.Model):
    name = models.CharField(max_length=100)
    text = models.CharField(max_length=2000)
    countries = models.ManyToManyField(Country, blank=True)
    def __unicode__(self):
        return self.name

class Vaccine(models.Model):
    name = models.CharField(max_length=100)
    text = models.CharField(max_length=2000)
    diseases = models.ManyToManyField(Disease, blank=True)
    def __unicode__(self):
        return self.name

产生错误消息的直接原因是,您正在向Django序列化程序传递一个list对象,但它需要一个QuerySet

我要做的是将数据结构构建为一系列嵌套的Python字典,然后在最后使用
JSON.dumps()
将其全部转换为JSON。(请注意,这是实际内置的
json
库,您已经使用序列化程序对其进行了跟踪。)类似(未测试):


请同时发布您的疫苗型号代码。:)
serializer = serializers.get_serializer('python')
vaccine_list = serializer.serialize(vaccines)
for i, v in enumerate(vaccines):
    diseases = v.diseases.all()
    disease_list = serializer.serialize(diseases)
    vaccine_list[i]['fields']['diseases'] = disease_list
data = json.dumps(vaccine_list)