如何在Django的views.py中打印数据库数据而非在模板中输出
实现方案
你直接在获取到order对象之后、返回响应之前,遍历和模板逻辑一致的订单项集合,打印对应字段即可,修改后的视图代码如下:
order = Order.objects.get(user=request.user, ordered=False) # 以下为新增的控制台打印代码 print("===== 当前用户待支付订单商品详情 =====") for order_item in order.items.all(): # 计算商品小计,和模板中自定义过滤器subtract的逻辑保持一致 discount_price = order_item.item.discount_price if order_item.item.discount_price else 0 subtotal_price = order_item.item.price - discount_price print(f"商品标题:{order_item.item.title}") print(f"商品描述:{order_item.item.description}") print(f"购买数量:{order_item.quantity}") print(f"商品原价:{order_item.item.price}") print(f"折扣价格:{order_item.item.discount_price}") print(f"单品小计:{subtotal_price}") print("----------------------------------") context['object']=order return render(request,"Orderview.html",context)
如果需要快速查看对象的所有字段做调试,还可以直接打印对象的__dict__属性:
# 打印订单项关联的商品所有字段 print(order_item.item.__dict__) # 打印订单项本身所有字段 print(order_item.__dict__)
启动Django服务后,触发这个视图请求时,对应的内容就会直接输出到运行服务的控制台中。
内容的提问来源于stack exchange,提问作者Rahul Sahni
相关产品推荐
相关产品推荐

