【发布时间】:2019-09-27 07:15:51
【问题描述】:
我有一本新字典:
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 %}
模型.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)
我无法理解我做错了什么?
编辑
如果在模板中使用,这是我的输出:
{% for k,v in res.items %}
<h1>v value is </h1>
{{ v.Name }}
{% endfor %}
我想要什么
我希望能够像使用任何其他模型一样使用对象,并根据模型具有的其他属性获取值。像这样:
{% for k,v in res.items %}
<h1>v value is </h1>
{{ v.Name }}
{{ v.Category }}
{{ v.Truckid }}
{% endfor %}
【问题讨论】:
-
再一次,您的值是列表。您知道如何迭代列表。为什么不能对每个值都这样做?
-
@DanielRoseman 很抱歉,我对 django 很陌生,无法弄清楚
-
@Alasdair 更新了问题
-
这不是关于 Django 的问题。如果您可以使用 for 循环,那么您已经知道如何回答这个问题了。
-
@AmineMessaoudi 我正在使用另一个使用
pyshipping的自定义代码创建new变量。向您展示我是如何获得该代码的将是一项漫长的任务,但请放心,它给我的字典是正确的。我可以通过for k, v in res.items(): try: v = get_object_or_404(Truckdb, id=v) new[k] = v except : v = [get_object_or_404(Truckdb, id=v_id) for v_id in v] new[k] = v print(v)展示我是如何分配对象的
标签: python django dictionary django-templates