我正在开发一个应用程序的后端,并编写一个函数来从多个表中检索数据,然后从中构造一个 httpresponse。
我想做的是获得一种疫苗,然后是该疫苗的所有疾病,然后构建包含所有内容的东西(对象,列表,字典,...)。
到目前为止,我得到的是:
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