首页 > 解决方案 > 在进行 django 项目时如何在 jinja 中使用 get 查询?

问题描述

所以我正在做一个django项目。我已经向我的 html 模板发送了一个字典(其中包含一个外键)。它有 'name'(这是一个外键)、'bills'、'flat' 键。因此,当我尝试打印用户名时,它实际上是在打印用户的 ID。但我想要这个名字。我已经使用users = User.objects.all().values('name','bills','flat')然后在模板中传递了用户。我试图这样打印: {% for info in users %} {{info}} {% endfor %} 但它没有给出名称,而是给了我用户的 ID 号。

我的models.py文件:

`
class Owner(models.Model):
    name = models.CharField(max_length=100)
    email = models.CharField(max_length=100)
class Payment(models.Model):
    name=models.ForeignKey(Owner,on_delete=models.CASCADE,null=True)
    flat = models.CharField(max_length=1,null=True,blank=True)
    floor = models.IntegerField(default=0)`

我的views.py文件:`

info = Payment.objects.all()
dict = {'1':[info.values('name','flat','floor','water_bill')]}

`

我的模板文件:

`
{% for j in dict.0 %}
<tr>
{% for i in j.values %}
<td>{{i}}</td>
{% endfor %}
</tr>
{% endfor %}
`

标签: jinja2

解决方案


return 语句应该看起来像这样,

return render_template(file.html, dict = dict)

然后你可以在 jinja 中使用 dict 变量,如下所示,

{% for j,k in dict %}
<tr>
{% for i in j.values %}
<td>{{i}}</td>
{% endfor %}
</tr>
{% endfor %}

推荐阅读