【问题标题】:Django, combining a list of QuerySets into 1 QuerysetDjango,将查询集列表组合成 1 个查询集
【发布时间】:2020-12-24 09:16:18
【问题描述】:

所以我正在 Django 中构建一个服装比较器。我创建了多个复选框,以便人们可以将产品过滤到例如:夹克和裤子。为了获取我的 Postgresql 数据库中的所有产品,我制作了一个字典,其中键是类别,值是链接到该类别的单词。如果找到匹配项,则产品将附加到包含我要显示的所有产品的列表中。问题是我在该列表中有多个查询集,我无法将其输出到我的 HTML。有没有办法将列表中的所有 QuerySet 组合成一个 QuerySet?代码:

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)

list1 看起来像这样:

[<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

【问题讨论】:

    标签: python html django postgresql


    【解决方案1】:

    请试试这个。这里我们将值过滤为列表数据类型。

    data = list(models.Product.objects.filter(name__regex=value))
    list1.append(data)
    

    请添加您的模型以获取更多信息。

    【讨论】:

    • 啊,谢谢这个作品,但现在我在用 HTML 输出它时遇到了问题。数据通常看起来像这样:, etc]>。现在看起来像这样:[[, ]]
    猜你喜欢
    • 2022-01-12
    • 2019-02-11
    • 2016-05-09
    • 2013-09-06
    • 1970-01-01
    • 2018-08-02
    • 2013-03-13
    • 2012-10-29
    • 2021-05-29
    相关资源
    最近更新 更多