Как правильно показывать "похожие товары" с помощью карусели в шаблоне Django?
Я хочу отображать похожие товары с помощью карусели. Но я могу отобразить только 4 товара на "элемент карусели". Если в цикле {% for item in related_products %} больше 4, то отображение не корректно.
Я сделал "контекстные" срезы из 4 элементов, и это даже работает, но я уверен, что есть лучший способ.
Как я могу решить эту проблему и перенести следующие товары в следующий "элемент карусели"?
Кроме того, подскажите, пожалуйста, как не отображать "элемент карусели", если для него нет товаров? Конструкция {% if related_products_1 is not null %} не работает.
мои взгляды:
class ProductDetail(FormView):
template_name = 'retail/single_product.html'
context_object_name = 'product'
form_class = CartAddProductRetailForm
def get_queryset(self):
return Product.objects.filter(category__slug=self.kwargs['slug'])
def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(**kwargs)
context['product'] = Product.objects.get(slug=self.kwargs['slug'])
# slices:
context['related_products_1'] = Product.objects.select_related('tag').all()[:4]
context['related_products_2'] = Product.objects.select_related('tag').all()[4:8]
context['related_products_3'] = Product.objects.select_related('tag').all()[9:12]
return context
Шаблон: