Как отобразить набор запросов в соответствии с переключателями в Django - PullRequest
0 голосов
/ 23 сентября 2019

Мне нужно отобразить список продуктов в соответствии с тем, что пользователь выбрал в переключателях шаблона, если пользователь выбирает «мужчины», отображаются только продукты с полом = «мужчины» и так для женских товаров, так как это сделать правильно?для этого я написал несколько фрагментов, но это не сработало, и мне нужна помощь, чтобы сделать это правильно, вот мой код models.py

GENDER_CHOISES=(

        ('men', "Men"),
        ('women', "Women"),)
class Product(models.Model):
    title         = models.CharField(max_length=120)
    slug          = models.SlugField(blank=True, unique=True)
    description   = models.TextField()
    price         = models.DecimalField(decimal_places=2, max_digits=20, default=39.99)
    image         = models.ImageField(upload_to='products', null=True, blank=False)
    featured      = models.BooleanField(default=False)
    active        = models.BooleanField(default=True)
    gender        = models.CharField(max_length=120,default="" ,choices=GENDER_CHOISES)
    timestamp     = models.DateTimeField(auto_now_add=True)

views.py

def ProductListView(request):
    if request.method=='post':

        queryset = Product.objects.filter(gender=request.POST.get(['gender']))
    else:
        queryset = Product.objects.all()
    template_name = "products/list.html"
    return render(request,template_name,{'object_list':queryset})

.html

{% extends "base.html" %}
{% block content %}
<form  method='post'>
    <div class="mx-auto mx-0"></div>
<div class="btn-group btn-group-toggle" data-toggle="buttons">
  <label class="btn btn-secondary">
    <input type="radio" name="gender"  autocomplete="off" value='men'> Men
  </label>
  <label class="btn btn-secondary">
    <input type="radio" name="gender"   autocomplete="off" value='women'> Women
  </label>
</div></form>
{{object_list.count}}

        <div class="row">

    {% for product in object_list %}
    <div class="col">
        <!-- {{ forloop.counter }} -->
        {% include 'products/snippets/card.html'%}

        {% if forloop.counter|divisibleby:3 %}
         </div></div>
         <div class="row"><div class="col-12"><hr></div>
       {%  else %}
           </div>
       {% endif %}


    {% endfor %}

</div>

{% endblock %}

Любая помощь приветствуется и спасибо заранее

...