我有一个视图,根据我的打印,输入了Try
和Except
部分
据我所知,它应该只输入Try
部分或Except
部分,而不是两者
Cart object exist
Lenght in Cart_Items
1
Enters Except PART
55
为什么会发生这种情况?
def cart_detail(request, total = 0, counter = 0, cart_items = None):
try:
cart = Cart.objects.get(id = request.COOKIES.get("cart_id"))
if not cart:
print("No Cart object")
else:
print("Cart object exist")
cart_items = CartItem.objects.filter(cart = cart)
print("Lenght in Cart_Items")
print(len(cart_items))
for cart_item in cart_items:
total += (cart_item.product.price)
sample_items = SampleItem.objects.filter(cart=cart)
for sample_item in sample_items:
total += (sample_item.sample.price)
culqi_my_public_key = settings.CULQI_PUBLISHABLE_KEY #Es necesario mandar la llave pública para generar un token
culqi_total = int(total * 100) #El total para cualqui debe multiplicarse por 100
categories = Category.objects.exclude(name='Muestras')
return render(request, 'cart.html', dict(cart_items = cart_items, sample_items = sample_items, total = total, counter = counter,
culqi_total = culqi_total, culqi_my_public_key = culqi_my_public_key,
categories = categories))
except:
print('Enters Except PART')
print(request.COOKIES.get("cart_id"))
categories = Category.objects.exclude(name='Muestras')
return render(request, 'cart.html', {'categories':categories})
您的代码将在try块中的
print(len(cart_items))
语句之后中断,然后进入except块你的理解是错误的。代码始终进入
try:
部分,直到引发异常。如果发生这种情况,则运行except:
部分所以你得到了
try:
的第一部分,然后是except:
。未到达try:
末尾的代码您的
try:
部分非常长,您有一个所谓的“bare except”:您不说要捕获哪些异常。这两个都不是一个好主意,最好有一个简短的try部分(这样您就可以确切地知道哪一行可能抛出异常),然后准确地捕获您期望的异常,而不捕获其他异常。否则,意外的异常将在您没有注意到的情况下发生,因为它们被except:
块静音相关问题 更多 >
编程相关推荐