将带有对象列表的字典作为 django 中的值呈现,但模板不显示值

Posted

技术标签:

【中文标题】将带有对象列表的字典作为 django 中的值呈现,但模板不显示值【英文标题】:Render a dictionary with object list as values in django but template not showing values 【发布时间】:2020-04-01 09:39:04 【问题描述】:

我正在尝试在我的模板中显示从我的视图文件中呈现的字典值。但它没有显示任何价值。在我的 html 模板中显示我只是空白或没有任何错误。

views.py

class BuyView(TemplateView):
     template_name = 'shop/buy.html'
     red_templateName = 'shop/receipt.html'

     def get(self, request, product_id):
          product = get_object_or_404(Product, pk=product_id)
          args = 'product':product
          return render(request, self.template_name, args)

     def post(self, request, product_id):
          product = Product.objects.get(id=product_id)
          if request.POST['address'] and request.POST['quantity']:
               order = Order()
               order.or_proName = product.pro_name
               order.or_companyName = product.companyName
               order.or_quatity = request.POST['quantity']
               order.or_quatity = int( order.or_quatity)
               orderPrice = order.or_quatity*product.Sale_Price
               order.or_bill = 100 + orderPrice
               order.pub_date = timezone.datetime.now()
               product.Quantity -= order.or_quatity
               product.save()
               order = order.save()
               args = 'order':order
               return render(request, self.red_templateName, args)

          else:
               return render(request, self.template_name, 'error':'Please Fill the address field')

template.html

% extends 'base.html' %
% block content %
<div>

  <div class="container p-5" style="border:1px solid gray;">
    <small class="lead" >Your Order Receipt: </small>
         order.or_id 
        order.or_proName
        order.or_companyName
        order.or_quatity
        order.pub_date
        Deliever Chargers=100
        -----------------------
        Total = or_bill
  </div>
</div>

% endblock %

【问题讨论】:

if request.POST['address'] and request.POST['quantity'] 绝对是真的吗? 是的@RHSmith159。一切正常,但 args = 'order':order 这不是工作客栈模板 【参考方案1】:

您的模板文件名应与以下内容匹配

red_templateName = 'shop/receipt.html'

【讨论】:

以上是关于将带有对象列表的字典作为 django 中的值呈现,但模板不显示值的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在我的基于 django 的应用程序上打印字典键和相应的值列表?

递归遍历带有列表的嵌套字典,并替换匹配的值

Django 查询聚合成字典列表

Django模型中的下拉列表

MongoDB 和 Python - 带有列表的字典

将字典列表中存在的多个 id 与模型 django 的 id 进行比较