You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向用户展示心愿单为空?Django视图无报错但页面显示源代码如何解决

Django wishlist视图页面展示源代码解决方案

核心根因及修复

问题根源是render函数传参错误:
Django的render函数参数规则为render(request, 模板路径, 上下文字典, 内容类型),你在返回时拆分了两个独立字典传入:

return render(request, 'wishlist/wishlist.html', {'wishlist': context}, {'error': error})

此处第二个字典{'error': error}被当作content_type(响应内容类型)参数传入,导致响应头的内容类型被错误修改,浏览器将HTML识别为纯文本,直接展示源代码。
修复方式:将所有上下文变量合并为同一个字典传入即可:

return render(request, 'wishlist/wishlist.html', {'wishlist': context, 'error': error})

其他潜在问题修复

  • 变量未定义问题:error变量仅在「用户已登录且List存在对应用户数据」的分支中被赋值,其余场景(用户未登录、用户已登录无对应List数据)调用error会触发NameError,建议在函数开头给error设置默认值,或者在所有分支补充赋值。
  • 逻辑冗余问题:已登录用户的分支中,无论List是否存在,context都被赋值为同一查询结果,原有判断逻辑无实际作用,且错误地在列表存在时赋值空列表提示,建议调整为:
def wishlist(request):
    error = ''
    context = None
    if request.user.is_authenticated:
        user = request.user.id
        context = List.objects.filter(user=user)
        if not context.exists():
            error = 'Your wishlist is empty'
    else:
        context = WishList(request)
    return render(request, 'wishlist/wishlist.html', {'wishlist': context, 'error': error})

内容的提问来源于stack exchange,提问作者Inexpli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:15:03