0
0 комментариев

Имеется такой список объектов, отображенных по значению атрибутов товаров.
описание изображения

Значения атрибутов товаров, которые связаны между собой — должны быть в форме выпадающего списка Select(option)/DropDownMenu, т.е. — к примеру вместо Size:Medium,Size:Small должно быть просто

Medium
Small

То что эти значения атрибутов относятся к Size можно указать внутри Templates(label), т.е. это не так важно, главное — каким образом их можно поместить в этот Select список (Dropdown Menu).


От себя хочу добавить, что я пытался изменить значения которые указывается по умолчанию, в Templates, вместо CheckBox’ксов — я пробовал указать Select Option, но результат получился неправильным

описание изображения.


TEMPLATES

Browse.html:

{% for field, data in facet_data.items %}
    {% if data.results %}
        {% include 'search/partials/facet.html' with name=data.name items=data.results %}
    {% endif %}
{% endfor %}

facet.html:

{% for item in items %}
<dd>
   <input class="facet_checkbox" type="checkbox" name="{{ item.name }}" />
   <input class="facet_url" type="hidden" name="url_for_{{ item.name }}" value="{{ item.select_url }}" />
   <a href="{{ item.select_url }}">{{ item.name }}</a>
    {% if item.show_count %}
        ({{ item.count }})
    {% endif %}
</dd>


Product Class — это класс всех продуктов (товаров), используемый для индексирования, фильтром.
Далее идет просто уточнение тех значений, которые нужно отобразить (в моем случае это значения атрибутов)

Search_Indexes.py

class ProductIndex(indexes.SearchIndex, indexes.Indexable):
    product_class = indexes.MultiValueField(null=True, faceted=True)
 
def prepare_product_class(self, obj):
    attributes = obj.attribute_values.all()
    if len(attributes) > 0:
        return [product_class for product_class in attributes]


Добавить комментарий