#python #html #django #postgresql
#python #HTML #django #postgresql
Вопрос:
Итак, я создаю средство сравнения одежды в Django. Я создал несколько флажков, чтобы люди могли фильтровать продукты, например: куртки и брюки. Чтобы получить все продукты в моей базе данных Postgresql, я создал словарь, в котором ключами являются категории, а значениями — слова, связанные с категорией. Если найдено совпадение, продукты добавляются к списку, который содержит все продукты, которые я хочу показать. Проблема в том, что у меня есть несколько наборов запросов в этом списке, и я не могу вывести его в свой HTML. Есть ли способ объединить все наборы запросов в списке в один набор запросов? Код:
mylist = request.POST.getlist('checkbox')
categorie_list = ['jackets', 'sweaters', 't-shirts', 'polo-shirts', 'trousers', 'shorts', 'hats', 'bags']
cat_dict = {'jackets': ['zip-up', 'jacket', 'overshirt', 'parka'], 'sweaters': ['hoodie', 'sweatshirt', 'jumper']}
list1 = []
for item in mylist:
if item in categorie_list:
if item in cat_dict.keys():
print(item)
for value in cat_dict[item]:
print(value)
data = models.Product.objects.filter(name__regex=value)
list1.append(data)
else:
pass
else:
pass
print(list1)
список 1 выглядит примерно так:
[<QuerySet [<Product: >, <Product: >]>, <QuerySet [<Product: >, <Product: >]>, <QuerySet [<Product: >, <Product: >]>]
модель выглядит следующим образом:
class Product(models.Model):
brand = models.TextField()
name = models.CharField(max_length=200)
color = models.TextField(null=True)
final_price = models.TextField()
initial_price = models.TextField()
sort_price = models.TextField()
product_link = models.TextField()
image_link = models.TextField()
discount = models.TextField()
company_pic = models.TextField()
def __str__(self):
return self.name
Ответ №1:
Пожалуйста, попробуйте это. Здесь мы фильтруем значения как тип данных списка.
data = list(models.Product.objects.filter(name__regex=value))
list1.append(data)
пожалуйста, добавьте свою модель для получения дополнительной информации.
Комментарии:
1. Ах, спасибо, это работает, но теперь у меня проблемы с выводом его в HTML. Данные обычно выглядят примерно так: <Набор запросов [<Продукт>, <Product> etc]>. И теперь это выглядит так: [[<Продукт>, <Product>]]