Python Django模板中的嵌套for循环无法循环字典项

Python Django模板中的嵌套for循环无法循环字典项,python,html,django,django-templates,Python,Html,Django,Django Templates,我正在尝试建立一个小型电子商务项目的一部分 显示订单信息的views.py函数 @login_required def past_orders_view(request): print (request.user) allOrders = Order.objects.filter(full_name=request.user) return render(request, "orders.html", {'Orders':allOrders}) db

我正在尝试建立一个小型电子商务项目的一部分

显示订单信息的views.py函数

@login_required
def past_orders_view(request):
    print (request.user)
    allOrders = Order.objects.filter(full_name=request.user)
    return render(request, "orders.html", {'Orders':allOrders})
db中的allOrders查询集如下所示,它将显示特定登录用户的订单:

<QuerySet[<Order: 13-{'Zenbook 14': '82990.00', 'iPhone 11 64gb': '61999.00'}-godric-+919871199215>]>
因此,可以通过模板中的for循环直接访问顺序对象,例如全名、状态、日期,并根据需要在HTML中显示。有问题的部分是在字典中循环,字典以产品名称为键,价格为值。 已尝试嵌套for循环,无法获得答案

尝试循环示例:

{% for order in Orders %}
   <tr>
    {% for key,value in order.items_json.items %}
       <tr>
        <td> {{order.date}} </td>
        <td> {{order.status}} </td>
        <td> {{ key}} </td>
        <td> {{ value }} </td>
      </tr>
   {% endfor %}
  </tr>
{% endfor %}
{%用于订单%}
{%为键,值为order.items\u json.items%}
{{order.date}
{{order.status}
{{key}}
{{value}}
{%endfor%}
{%endfor%}

需要帮助

或者简单地将这一部分作为您的视图并在上下文中传递

如果希望在多个位置重复使用此标记,可以按照提供的方法创建一个简单的自定义模板标记

您的案例示例:

class tuple\u to\u对象:
定义初始化(自,输入元组):
self.key=输入\元组[0]
self.value=输入\元组[1]
def get_key_值(字典):
l=列表(dictionary.items())
返回[l中项目的元组\u到\u对象(项目)]
...
orders=获取密钥值(User.order\u set.all()
呈现(请求,'path/to/view.html',{“orders”:orders)})
在你看来:

{%用于订单%}
{{order.key}}
{{order.value}}
{%endfor%}

注意:这不适合您的问题,但方法是相同的

呈现的HTML中实际出现了什么?服务器控制台中有任何信息吗?当我尝试循环示例(上面问题的最后一部分)时,它无法显示任何信息。虽然当我显示order.items_json时,通过一个for循环迭代Orders时,会显示{'Zenbook 14':'82990.00','iPhone 11 64gb':'61999.00},但我怀疑
order.items_json
实际上是一个字符串,而不是一个字典。我将在Python代码中将其转换为字典(可能通过
orders
循环,并使用真正的字典在order中分配新属性。是的!你是对的。在view.py中检查了它的类型,发现它是一个包含字典的字符串。在orders上使用regex进行计算,然后使用eval将其转换回字典。感谢poi把它拿出来!:-)
order = Order(items_json=items_json, full_name=name, town_or_city=city,                  
              phone_number=phone, status=status, date=timezone.now())
order.save()
{% for order in Orders %}
   <tr>
    {% for key,value in order.items_json.items %}
       <tr>
        <td> {{order.date}} </td>
        <td> {{order.status}} </td>
        <td> {{ key}} </td>
        <td> {{ value }} </td>
      </tr>
   {% endfor %}
  </tr>
{% endfor %}