繁体   English   中英

如何计算 Django 模板中的产品?

[英]How to count products in Django template?

我正在根据类别获取产品,我想在计数后以这种格式Showing Products 1-24 of 10 Result ,我的产品是按类别显示的,请告诉我如何在之后显示产品该类别中的计数。 这意味着如果一个类别有 20 个产品,那么它将在我的产品列表页面上显示20 product

class SubCategory(models.Model):
    subcat_name=models.CharField(max_length=225)
    subcat_slug=models.SlugField(max_length=225, unique=True)
    category = models.ForeignKey('Category', related_name='subcategoryies', on_delete=models.CASCADE, blank=True, null=True)

这是我的产品 models.py 文件...

class Product(models.Model):
    name=models.CharField(max_length=225)
    slug=models.SlugField(max_length=225, unique=True)
    subcategory=models.ForeignKey('SubCategory', related_name='prosubcat', on_delete=models.CASCADE, blank=True, null=True)

    def __str__(self):
        return self.name

这是我的model.py文件代码...

def SubCategorySlugListAPIView(request, subcat_slug):
    subcategories = SubCategory.objects.all()
    product = Product.objects.all()
    if subcat_slug:
        subcategory = get_object_or_404(SubCategory, subcat_slug=subcat_slug)
        productlist = product.filter(subcategory=subcategory)
        paginator = Paginator(productlist, 12)
        page_number = request.GET.get('page')
        product = paginator.get_page(page_number)
template_name = 'mainpage/cat-products.html'
context = {'product': product,
           'subcategories': subcategories, 'subcategory': subcategory}
return render(request, template_name, context)

这是我的cat-products.html文件...

<div class="search-count">
    <h5>Showing Products  {{product.count}}</h5>
</div>

这里没有显示,请告诉我如何在此处显示产品数量。

尝试像这样改变你的观点。

   def SubCategorySlugListAPIView(request, subcat_slug):
        subcategories = SubCategory.objects.all()
        subcategory = get_object_or_404(SubCategory, subcat_slug=subcat_slug)            
        productlist = Product.objects.filter(subcategory=subcategory)
        paginator = Paginator(productlist, 12)
        page_number = request.GET.get('page')
        product = paginator.get_page(page_number)
        template_name = 'mainpage/cat-products.html'
        context = {'product': product,
               'subcategories': subcategories, 'subcategory': subcategory}
        return render(request, template_name, context)

或者,您也可以使用此在模板中执行此操作。

<h5>Showing Products  {{subcategory.prosubcat.all.count}}</h5>

编辑:在这里我可以看到你正在使用paginator ,所以你可以这样做。

Showing products {{product.start_index}} - {{prodct.end_index}} of {{product.count}} results.

有关分页的更多详细信息,请参阅文档

您可以使用 Django 的计数function ,然后将其作为视图的一部分传递。

像这样使用它

context = {'count': Product.objects.count()}

然后它应该返回您的查询集中有多少产品。 那么,在您的 HTML 文件中,您可以简单地将其渲染为

<div class="search-count">
  <h5>Showing Products {{ count }}</h5>
</div>

编辑

在审查了您的样本后,我相信它应该是

Product.objects.filter(subcategory=subcat_slug).count()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM