сортировать товары по тегу <option>, используя Django и HTML - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть список типа

<select class="selection-2" name="sorting">
    <option>Default Sorting</option>
    <option>Popularity</option>
    <option>Price: low to high</option>
    <option>Price: high to low</option>
</select>

Теперь я хочу отсортировать продукты, которые я перечислил, на мою html-страницу, используя Django View.

def product_list(request, category_slug=None):
    category = None
    categories = Category.objects.all()
    products = Product.objects.filter(available=True)
    paginator = Paginator(products, 9)
    page =  request.GET.get('page')
    products = paginator.get_page(page) 

    if category_slug:
        category = get_object_or_404(Category, slug=category_slug)
        products = Product.objects.filter(category=category)
    context = {
        'category': category,
        'categories': categories,
        'products': products
    }

return render(request, 'shop/product/list.html', context)

Это мой список продуктови я хочу создать представление для сортировки и фильтрации продуктов.

Делая это, я хочу применить фильтры к моему списку продуктов и отсортировать их по цене «от низкого до высокого» или «от высокого до низкого»"order.

Для этого я создал представление фильтра

def filter(request):
    try:  
        q = request.GET.get('')
        print(q)
    except:
        q = None
    if q:
        products = Product.objects.filter(price__range=(price1,price2))
        context = {'query': q, 'products': products}    
        template = 'shop/product/result.html'
    else:
        context = {'query': q}      
        template = 'shop/product/list.html'
    return render(request, template, context)

В этом мне нужно создать форму для публикации результатов в моем представлении" Product_list ".

...