首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环循环

循环循环
EN

Stack Overflow用户
提问于 2020-12-02 23:30:59
回答 1查看 25关注 0票数 0

我有一个项目,其中我使用嵌套的for循环来筛选项,但结果不断重复出现本不应该如此的项。请告诉我,我哪里错了?

代码语言:javascript
复制
def order_list(request):
    orders = Order.objects.all()
    current_user = request.user
    user_list = orders.filter(user=current_user.id)
    success = orders.filter(paid=True)
    fail = orders.filter(paid=False)
    return render(request, 'orders/order/order_list.html', {
        'orders': orders,
        'success': success,
        'fail': fail,
        'user_list':user_list,
        'current_user':current_user,
    })

html

代码语言:javascript
复制
{% for ls in orders %}
{% for x in user_list %}
{% for od in success %}
<div class="card mb-3" style="max-width: 540px;">
    <div class="row no-gutters">
        <div class="col-md-3">
            <img alt="product img" class="card-img" src="...">
        </div>
        <div class="col-md-9">
            <div class="card-body" style="position: relative;">
                <h5 class="card-title">Product {{ od.id }}</h5>
                <a href="#" style="position: absolute; top: 5px; right: 5px;">View
                    Details</a>
                <p class="card-text">Transaction ID</p>
                <p class="card-text"><small class="text-muted">Delivered at
                    {{od.reference_id}}</small></p>
            </div>
        </div>
    </div>
</div>
{% endfor %}
{% endfor %}
{% endfor %}

实际结果应该与以下屏幕截图中的结果相同

但我明白了;

请检查图片,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-02 23:52:32

你正在做许多不合逻辑的事情,把所有事情都放在一个单一的上下文中会更容易:

代码语言:javascript
复制
def order_list(request):
    template_name = 'orders/order/order_list.html'

    user = request.user

    orders = Order.objects.filter(user=user).filter(paid=True)

    return render(request, template_name, {
        'orders': orders
    })

您的模板将如下所示:

代码语言:javascript
复制
{% for order in orders %}
    <div class="card mb-3" style="max-width: 540px;">
        <div class="row no-gutters">
            <div class="col-md-3">
                <img alt="product img" class="card-img" src="...">
            </div>
            <div class="col-md-9">
                <div class="card-body" style="position: relative;">
                    <h5 class="card-title">Product {{ order }}</h5>
                    <a href="#" style="position: absolute; top: 5px; right: 5px;">View
                        Details</a>
                    <p class="card-text">Transaction ID</p>
                    <p class="card-text"><small class="text-muted">Delivered at
                        {{ order.reference }}</small></p>
                </div>
            </div>
        </div>
    </div>
{% endfor %}

这会对您有所帮助,因为您没有添加模型,所以我根据看到的字段假设数据

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65111151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档