如何只呈现具有特定标题的产品?

How to only render Products with a certain title?

所以我终于可以在主页上呈现我的产品了。 但是当我尝试按品牌名称列出产品时(在仪表板中创建产品时输入 "title"),因此我只想呈现具有特定标题名称的特定产品。 我的猜测是这样做(假设我输入的标题名称是 uniqlo):

        {% for product in products %}
                    {% render_product product.product_title.uniqlo %}
        {% endfor %}

但不幸的是没有渲染任何东西。我尝试了很多其他的可能性,但到目前为止没有运气。

我也试图通过查看 shell 来找出产品是如何保存的,但是无论我输入什么 from..import..Product.objects.all() 结果都不是 Product定义。

问的不清楚。您要始终 过滤那个uniqlo 标题吗?还是针对某些特定的(登陆/主)页面?

无论如何,一个简单的方法是(基于您已经尝试过的方法)-

{% for product in products %}
    {% if 'uniqlo' in product.title %}
        {% render_product product %}
    {% endif %}
{% endfor %}

此外,对于 shell 导入,尝试

from oscar.core.loading import get_model
Product = get_model('catalogue', 'Product')

如果您尝试仅在您的着陆页/主页中过滤标题,您可以在视图本身中过滤产品,然后再将其传递给模板 -

products = Product.objects.filter(title__icontains='uniqlo')