HTML转PDF时出现NameError: ObjectNotExist未定义错误求助
错误排查:NameError: name 'ObjectNotExist' is not defined
错误原因
- 异常类名称拼写错误:Django中处理模型查询不存在场景的正确异常类是
ObjectDoesNotExist,代码里误写为ObjectNotExist。 - 未导入异常类:即便拼写正确,
ObjectDoesNotExist也需要从Django核心异常模块导入后才能直接使用。
解决方法
方法一:导入全局异常类
- 在
views.py文件顶部添加导入语句:
from django.core.exceptions import ObjectDoesNotExist
- 修正
except块的异常名称:
except ObjectDoesNotExist: pass
方法二:使用模型专属异常(更精准)
无需额外导入,直接捕获Cart模型的专属不存在异常,针对性更强:
except Cart.DoesNotExist: pass
修正后的完整代码示例
from django.shortcuts import render from django.core.exceptions import ObjectDoesNotExist # 导入你的Cart、CartItem模型... def cart(request, total=0, quantity=0, cart_item=None): try: cart = Cart.objects.get(cart_id=_cart_id(request)) cart_items = CartItem.objects.filter(cart=cart, is_active=True) for cart_item in cart_items: total += (cart_item.product.price * cart_item.quantity) quantity += cart_item.quantity except ObjectDoesNotExist: pass context = { 'total': total, 'quantity': quantity, 'cart_items': cart_items, } return render(request, 'store/cart.html', context)
内容的提问来源于stack exchange,提问作者hamid333
相关产品推荐
相关产品推荐

