首页 > 解决方案 > 如何向用户显示他的愿望清单是空的?

问题描述

像标题一样的问题。
当我尝试这个views.py时,没有发生错误,但网站不想显示,页面显示为源代码。有什么解决办法吗?

def wishlist(request):
    if request.user.is_authenticated:
        user = request.user.id
        if List.objects.filter(user=user).exists():
            context = List.objects.filter(user=user)
            error = 'Your wishlist is empty'
        else:
            context = List.objects.filter(user=user)
    else:
        context = WishList(request)
    return render(request, 'wishlist/wishlist.html', {'wishlist': context}, {'error': error})

标签: django

解决方案


这里有两个主要错误:

  1. 您的条件检查是否有任何愿望清单,因此应将错误放在else零件中,而不是if零件中;和
  2. 您将多个变量作为包含多个项目的字典传递给上下文。
def wishlist(request):
    if request.user.is_authenticated:
        user = request.user.id
        context = List.objects.filter(user=user)
        if context:
            error = None
        else:
            error = 'Your wishlist is empty'
    else:
        context = WishList(request)
    return render(
        request,
        'wishlist/wishlist.html',
        {'wishlist': context, 'error': error}
    )

通过检查 的真实性context,我们将只进行一次查询来获取所有列表,而不是在我们首先检查列表是否为空的情况下进行两次查询,然后再进行一次查询来检索数据。


推荐阅读