Форум сайта python.su
Есть три модели связанных между собой:
class GoodsType(models.Model): name = models.CharField(max_length=50) def __unicode__(self): return self.name class Meta: ordering = ('id',)
class SubGoodsType(models.Model): type = models.ForeignKey(GoodsType, unique=False) name = models.CharField(max_length=50) def __unicode__(self): return self.name class Meta: ordering = ('type',)
class GoodsDescription(models.Model): subtype = models.ForeignKey(SubGoodsType, unique=False) basket = models.ManyToManyField(User, unique=False, null=True, blank=True) title = models.CharField(max_length=50, unique=False) articul = models.CharField(max_length=15, unique=False) image = models.ImageField(upload_to="description") description = models.TextField(max_length=4000) characteristics = models.TextField(max_length=4000, unique=False, null=True, blank=True) review = models.TextField(max_length=4000, unique=False, null=True, blank=True) number = models.IntegerField() price = models.CharField(max_length=15, unique=False, null=True, blank=True)
def GoodsDescriptionCatalogPrint (request, self): subsubgoods = GoodsDescription.objects.filter(subtype=self) subgoods = SubGoodsType.objects.filter(id=self) goods = GoodsType.objects.get(id=subgoods.type) return render_to_response ("goods/catalog.html", { 'subsubgoods': subsubgoods, 'id_subgoods': self, 'goods': goods, }, context_instance = RequestContext(request))
Отредактировано SorrowFuck (Окт. 17, 2012 14:33:22)
Офлайн
res=GoodsDescription.objects.filter(subtype=self)[0].subtype.type.name
Офлайн
FishHookСпасибо.res=GoodsDescription.objects.filter(subtype=self)[0].subtype.type.name
Офлайн
Переписал представление на такое:
def GoodsDescriptionCatalogPrint (request, self): subsubgoods = GoodsDescription.objects.filter(subtype=self) goods_name = SubGoodsType.objects.filter(id=self)[0].type goods = GoodsType.objects.get(name=goods_name) sub_goods_name = SubGoodsType.objects.filter(id=self)[0].name subgoods = SubGoodsType.objects.get(name=sub_goods_name) return render_to_response ("goods/catalog.html", { 'subsubgoods': subsubgoods, 'subgoods': subgoods, 'goods': goods, }, context_instance = RequestContext(request))
res = SubGoodsType.objects.filter(subtype=self)[0].subtype.type.name
Офлайн
SorrowFuck“Кажется” - это слово не из нашего репертуара.
но мне кажется, что тут через чур много запросов лишних
Офлайн
FishHookSorrowFuck“Кажется” - это слово не из нашего репертуара.
но мне кажется, что тут через чур много запросов лишних
Установите django-debug-toolbar и посмотрите сколько конкретно запросов получается.
Офлайн
А одинаковые запросы присутствуют?
Офлайн
FishHook
А одинаковые запросы присутствуют?
SELECT "goods_subgoodstype"."id", "goods_subgoodstype"."type_id", "goods_subgoodstype"."name" FROM "goods_subgoodstype" INNER JOIN "goods_goodstype" ON ("goods_subgoodstype"."type_id" = "goods_goodstype"."id") WHERE "goods_subgoodstype"."id" = 1 ORDER BY "goods_subgoodstype"."type_id" ASC LIMIT 1
SELECT "goods_subgoodstype"."id", "goods_subgoodstype"."type_id", "goods_subgoodstype"."name" FROM "goods_subgoodstype" INNER JOIN "goods_goodstype" ON ("goods_subgoodstype"."type_id" = "goods_goodstype"."id") WHERE "goods_subgoodstype"."id" = 1 ORDER BY "goods_subgoodstype"."type_id" ASC LIMIT 1
Офлайн
Мне б твои проблемы
Офлайн