我目前的模式在我的Django應用程序:問題與預取在Django
class Referentiel(models.Model):
code = models.CharField(max_length=50)
libelle = models.CharField(max_length=100)
class Reference(models.Model):
referentiel = models.ForeignKey('Referentiel', related_name='reference_set')
clef = models.CharField(max_length=50)
class ValeurReference(models.Model):
reference = models.ForeignKey('Reference', related_name='valeur_set')
valeur = models.DecimalField(max_digits=15, decimal_places=5)
date_fin = models.DateField(blank=True, null=True)
我想檢索Referentiel的價值,所以我做這樣的事情:
Referentiel.objects.filter(code='whatever_code').prefetch_related(Prefetch('reference_set__valeur_set', to_attr='valeurs'))
但試圖讓我的價值觀時,我有以下錯誤:
AttributeError: 'Referentiel' object has no attribute 'valeurs'
Django的版本:1.7.4 的Python版本sion:3.4.2
感謝您的任何建議。
我測試一些代碼,它似乎是「valeurs」已設置的reference_set內,而不是Referentiel查詢集內。如果你需要所有的ValeurReference,你可以使用de values()方法。 – RMotitsuki 2015-02-24 19:32:47
你的意思是「valeurs」在每個「參考」模型實例內到我的查詢集的'reference_set'? – 2015-02-25 22:03:08
就是這樣。如果** referentiels **是你的queryset的變種,你可以打印出「valeurs」: 'in a referentiels: for b in a.reference_set.all(): print b.valeurs' – RMotitsuki 2015-02-26 14:06:52