如果列表返回空,Django禁用链接

时间:2017-11-05 07:15:06

标签: python django django-templates

如果列表返回空,我不想显示链接。

template.html

{% for item in cart %}
<h1>{{ item.product.product_title }}</h1>
<a href="{% url 'products:remove_from_cart' item.product.id %}">Remove item</a>
{% empty %}
<p>No items in cart</p>
{% endfor %}
{% if item is not None %}
<p>
<a href="{% url 'products:checkout' %}">Checkout</a>
</p>
{% endif %}

views.py

def cartview(request):
if request.user.is_authenticated():
    cart = Cart.objects.filter(user=request.user.id, active=True)
    orders = ProductOrder.objects.filter(cart=cart)
    #total = 0
    count = 0
    for order in orders:)
        count += order.quantity
    context = {
        'cart': orders,
        'count': count,
    }
    return render(request, 'store/cart.html', context)
else:
    return redirect('index:index')

如果购物车清单为空,我想隐藏结帐链接。将它放在for循环中会使链接出现多次。我想只显示一次结帐按钮。

1 个答案:

答案 0 :(得分:1)

而不是'item'检查模板中的'cart'

{% if cart %}
<p>
<a href="{% url 'products:checkout' %}">Checkout</a>
</p>
{% endif %}