Mar*_*aux 5 python django prefetch django-queryset
我的 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)
Run Code Online (Sandbox Code Playgroud)
我希望检索 Referentiel 的值,所以我做这样的事情:
Referentiel.objects.filter(code='whatever_code').prefetch_related(Prefetch('reference_set__valeur_set', to_attr='valeurs'))
Run Code Online (Sandbox Code Playgroud)
但是在尝试获取我的值时出现以下错误:
AttributeError: 'Referentiel' object has no attribute 'valeurs'
Run Code Online (Sandbox Code Playgroud)
Django 版本:1.7.4 Python 版本:3.4.2
感谢您的任何建议。
我认为您已使用 queryset 参数来指定预取的自定义查询,并从那里预取 valeur_set。
更新:
reference_qs = Reference.objects.prefetch('valeurreference_set').all()
Referentiel.objects.filter(code='whatever_code')\
.prefetch_related(
Prefetch('reference_set', queryset=reference_qs, to_attr='valeurs')
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1313 次 |
| 最近记录: |