从django视图中仅拉出一次产品

时间:2013-04-20 10:38:00

标签: django django-templates django-views

我在从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

原来我不需要链接查询集我可以将产品拉出来。因为还有另一个功能在做其他工作。为此感到抱歉但感谢。我已经更新了答案。

1 个答案:

答案 0 :(得分:1)

ANSWER

原来我不需要链接查询集我可以将产品拉出来。因为还有另一个功能在做其他工作。为此感到抱歉但感谢。我已经更新了答案。