如何只提供具有特定标题的产品?

时间:2018-05-24 14:59:21

标签: django django-templates django-oscar

所以我终于能够在主页面上渲染我的产品了。 但是,当我尝试按品牌名称列出产品时(键入"标题"在仪表板中创建产品时),我因此只希望呈现具有特定标题名称的某些产品。 我的猜测就是这样做(假设我输入的标题名称是优衣库):

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

但遗憾的是没有渲染。我尝试了许多其他的可能性,但到目前为止没有运气。

我还试图通过查看shell来了解产品是如何保存的,但无论我输入from..import..Product.objects.all()结果Product都没有定义。

1 个答案:

答案 0 :(得分:1)

问的不清楚。您想始终过滤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')