0
私がモデルにしたいもの:ワクチン、国、病気と薬を持っています。Djangoのモデルの構造
疾患はN国 医学の治療法N疾患 ワクチンがN疾患
私の主な検索方法は、疾患接続を介してワクチンや医薬品をリスト、国によるであろうことを防止しています。
私は、このモデルによって、これを行うだろうと考えた:
class Country(models.Model):
name = models.CharField(max_length=100)
def __unicode__(self):
return self.name
class Disease(models.Model):
name = models.CharField(max_length=100)
country = models.ManyToManyField(Country)
def __unicode__(self):
return self.name
class Vaccine(models.Model):
name = models.CharField(max_length=100)
diseases = models.ManyToManyField(Disease, blank=True)
def __unicode__(self):
return self.name
class Medicine(models.Model):
name = models.CharField(max_length=100, blank=True)
diseases = models.ManyToManyField(Disease, blank=True)
def __unicode__(self):
return self.name
そして、私はこのような検索:
def vacc_for_country(request, country_id):
diseases = Disease.objects.filter(countries__pk=country_id)
vaccines = Vaccine.objects.filter(id__in=[d.id for d in [v.diseases for v in Vaccine.objects.all()]])
return serialize(vaccines)
しかし、それは動作しません、私が取得:/ワクチンではAttributeErrorを/ seek/countryId/3 'ManyRelatedManager'オブジェクトには属性 'id'がありません。
どのようにしてcountry_idからワクチンの一覧に行くことができますか?
ああ、それは簡単でした。ありがとう:)これは私の最初のDjango-appであり、まだフィルタ引数の周りに私の頭を包んでいません。 – dutt