Пытался сегодня разобраться как работает django_filters, но не вышло.
Я делаю интернет-магазин и пока сделал фильтрацию только по категории товара, код ниже.
Столкнулся с проблемой, что не понимаю как реализовать доп фильтры ( сортировать по цене, по дате и.т.д)
Может кто-то накинуть варианты ?
#Models.py
class Item(models.Model):
colors =(
('black', 'Черный'),
('white', 'Белый'),
('bordo', 'Бордовый'),
('bej', 'Бежевый'),
('green', 'Зеленый')
)
item_title = models.CharField('Название', max_length=200)
item_description = models.TextField('Описание')
item_size = models.CharField('Размер', max_length=10)
item_price = models.IntegerField('Цена')
item_pub_date = models.DateTimeField('Дата публицкации', auto_now=True)
item_image_1 = models.ImageField('Первая картинка', upload_to="images", null=True)
item_image_2 = models.ImageField('Вторая картинка', upload_to="images", null=True)
item_color = MultiSelectField('Цвета', max_length= 100, choices=colors, null=True)
item_type = models.ForeignKey('ItemType', on_delete = models.CASCADE, null=True)
class Meta:
verbose_name= 'Товар'
verbose_name_plural = 'Товар'
def __str__(self):
return '{}'.format(self.item_title)
class ItemType(models.Model):
title = models.CharField('Название товара', max_length=200)
class Meta:
verbose_name= 'Тип товара'
verbose_name_plural = 'Тип товара'
def __str__(self):
return '{}'.format(self.title)
# views.py
def index(request):
item = Item.objects.all()
context ={
'items':item
}
return render(request,'add_item/item.html', context)
def item_type_detail(request, category_name):
filtred_items= Item.objects.filter(item_type__title= category_name)
return render (request, 'add_item/item1.html',context={'filtred_items':filtred_items })