渲染字典,将对象列表作为django中的值

时间:2019-05-09 12:37:45

标签: python django dictionary django-templates

我有一本新的字典:

new = {'Delhi-Mumbai': [<Truckdb: Truckdb object (6)>], 'Doon-Gurgaon': [<Truckdb: Truckdb object (8)>, <Truckdb: Truckdb object (6)>]}

我无法在模板中从TruckDb渲染对象

这是我在views.py中尝试过的

return render(request, 'classroom/teachers/dispatcher_output.html',{'res':new})

这是我的模板

{% for k,v in res.items %}

      <h1>v value  is </h1>
      {{ v.Name }}

{% endfor %}

Models.py

class Truckdb(models.Model):

    Name = models.CharField(max_length=30)
    Category = models.CharField(max_length=30)
    Truckid = models.IntegerField(blank=True)
    Length = models.FloatField(blank=True)
    Breadth = models.FloatField(blank=True)
    Height = models.FloatField(blank=True)
    Volume = models.FloatField(blank=True)
    Weight = models.FloatField(blank=True)
    Price = models.FloatField(blank=True)

我无法理解我在做什么错?

编辑

这是我在模板中使用的输出:

des

{% for k,v in res.items %}

        <h1>v value  is </h1>
        {{ v.Name }}

{% endfor %}

我想要的

我希望能够像使用任何其他模型一样使用对象,并根据模型具有的其他属性获取值。像这样:

{%,res.items%中的k,v}

        <h1>v value  is </h1>
        {{ v.Name }}
        {{ v.Category }}
        {{ v.Truckid }}

{% endfor %}

1 个答案:

答案 0 :(得分:2)

您必须使用两个for loops,因为字典中的每个元素都是一个查询集

{% for k,v in res.items %}
    {% for element in v %}
        <h1>v value  is </h1>
        {{ element.Name }}
    {% endfor %}

{% endfor %}