私はアプリのバックエンドに取り組んでおり、いくつかのテーブルからデータを取得し、そこから 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