【发布时间】:2022-08-19 08:25:20
【问题描述】:
当我加载产品页面时,我希望在该页面上提供其他产品。但是在为每个产品生成绝对 url 时,会访问数据库。因此,如果页面上有 10 个产品,那么将有 + 10 次对数据库的调用 如何减少数据库中的查询数量? 这是我的代码:
模型.py
class Goods(models.Model):
category = models.ForeignKey(Category,
related_name=\'goods\',
on_delete=models.SET_NULL,
null=True)
name = models.CharField(max_length=150, db_index=True, verbose_name=\'название\')
slug = models.CharField(max_length=150, db_index=True, unique=True, verbose_name=\'Слаг\')
def get_absolute_url(self):
return reverse(\'goods_detail\', kwargs={\"category_slug[enter image description here][1]\": self.category.slug, \"goods_slug\": self.slug})
网址.py
path(\'<slug:category_slug>/<slug:goods_slug>\', views.GoodsDetailView.as_view(), name=\'goods_detail\'),
视图.py
class GoodsDetailView(DetailView):
model = Goods
context_object_name = \'goods\'
slug_url_kwarg = \'goods_slug\'
商品详情.html
{% for i in goods.ingredients.all%}<br>
<a href=\"{{ i.get_absolute_url }}\"> {{ i }}</a>
{% endfor %}
*如果我在一个页面上显示 4 个对象,照片显示了一个示例
标签: python sql django django-debug-toolbar