我在从Django视图中提取产品列表时遇到了一个小问题。我有一个产品页面,它可以浏览我的模型中的所有产品,其中勾选了“活动”复选框。您也可以将子产品分配给这些产品。
如果产品分配了子产品,而不是加载包含更多内容的页面,则会加载包含子产品列表的页面。然而,目前在模板中它循环并拉出所有产品。但是,如果产品分配了一个或多个子产品,它将不止一次地提取每个产品,具体取决于它分配给它的子产品数量。
之所以这样,是因为我创建了一个链,它在视图的函数中将两个变量组合在一起。但我需要这样做才能让子产品发挥作用。
基本上我需要做的是将每个产品限制为仅在模板上出现一次,无论它分配给它的子产品有多少。
如果您需要更多信息,请询问! :)
* 带答案的更新视图*
查看:
def producthome(request):
#prod_info= Product.objects.filter(active=True, sub_product__isnull = True)
#sub_product = Product.objects.filter(sub_product__isnull = False, active=True)
partner_post= Partner.objects.all()
product_all = Product.objects.filter(active=true)
#product_all = list(chain(prod_info, sub_product))
"""
Didn't need to chain the querysets together
product_all = sorted(
chain(prod_info, sub_product),
key = attrgetter('order'), reverse=True)
"""
return render_to_response('product_multi.html',{
'product_all': product_all,
'sub_product': sub_product,
'prod_info': prod_info,
'partner_post': partner_post
}, context_instance=RequestContext(request))
TEMPLATE:
{% for product in product_all %}
<li>
<div>
<h2 class="posttitle colortext">{{ product.name }}</h2>
<p>{{ product.description|safe|truncatewords:13 }}...</p>
<a href="{{ product.get_absolute_url }}" class="button">More</a>
</div>
</li>
{% endfor %}
的 ANSWER 的
原来我不需要链接查询集我可以将产品拉出来。因为还有另一个功能在做其他工作。为此感到抱歉但感谢。我已经更新了答案。
答案 0 :(得分:1)
ANSWER
原来我不需要链接查询集我可以将产品拉出来。因为还有另一个功能在做其他工作。为此感到抱歉但感谢。我已经更新了答案。