【发布时间】:2012-06-17 17:43:09
【问题描述】:
models.py:
class Ingredient(models.Model):
_est_param = None
param = models.ManyToManyField(Establishment, blank=True, null=True, related_name='+', through='IngredientParam')
def est_param(self, establishment):
if not self._est_param:
self._est_param, created = self.ingredientparam_set\
.get_or_create(establishment=establishment)
return self._est_param
class IngredientParam(models.Model):
#ingredient params
active = models.BooleanField(default=False)
ingredient = models.ForeignKey(Ingredient)
establishment = models.ForeignKey(Establishment)
我需要使用 Establishment 的参数获取所有成分。首先,我获取Ingredients.objects.all() 并使用所有参数,例如Ingredients.objects.all()[0].est_param(establishment).active。如何使用 django 1.4 prefetch_related 减少 sql 查询?也许我可以使用其他方式为Ingredient 存储单个Establishment 属性?
【问题讨论】:
标签: django django-orm