Django为同一个mod连接两个查询集

2024-10-01 11:25:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Products的列表,每个都属于不同的Distributor。在

我需要为这些产品及其相应的分销商显示一个表单。我可以用这个代码:

form_products = ProductFormSet(
    queryset = Product.objects.filter(product__id=product_id)
)

问题是,我需要在表单中显示属于页面中名为“FirstDistributor”first的特定Distributor的产品。在

我尝试使用以下代码在查询集之间使用|运算符来完成此操作:

^{pr2}$

但是表单仍然以相同的顺序显示。如何将这两个查询集连接成一个,同时保持相同的顺序?在

q1 = Product.objects.filter(product__id=product_id,
    distributor__name='FirstDistributor')

以及

q2 = Product.objects.filter(product__id=product_id
    ).exclude(distributor__name='FirstDistributor')

谢谢!在


Tags: 代码nameid表单列表objects顺序产品
2条回答

您可以使用itertools将这两种方法结合起来:

from itertools import chain
result_list = list(chain(page_list, article_list, post_list))

资料来源: https://stackoverflow.com/a/434755/3279262

你可以试着这样做:

https://stackoverflow.com/a/2176471/4971083

它是在Django中按特定值对记录排序的解决方案。 您可以按distributor_name='FirstDistributor'订购您的唱片

p= Product.objects.filter(product__id=product_id).extra(
select={'is_top': " distributor__name='FirstDistributor'"})
p = p.extra(order_by = ['-is_top'])

相关问题 更多 >