【发布时间】:2017-10-18 23:03:17
【问题描述】:
我只是不明白。不知何故,django 不想渲染两个变量 brand_company 和 brand_concern,即使 django 之前做了 2 行。
这是我在views.py中的定义:
def BrandDetails(request, brand_id):
brand = Brands.objects.get(id=brand_id)
brand_name = brand.name
brand_pic = brand.img
brand_concern = Concerns.objects.get(id=brand.concern_id).name
brand_company = Companies.objects.filter(id=brand.company_id)
brand_fair = brand.fair
brand_eco = brand.eco
context = {
"brand_id": brand.id,
"brand_name": brand.name,
"brand_pic": brand.img,
"brand_company": brand_company,
"brand_concern": brand_concern,
"brand_fair": brand_fair,
"brand_eco": brand_eco,
}
return render_to_response("database/details.html", context)
这是我的 html 片段:
{% extends "database/index.html" %}
{% block details %}
<div id="DetailsContent">
<img src="{{brand_pic}}"></img><br>
Markenname: {{ brand_name }}<br>
Unternehmen: {{ brand_company }}<br>
Konzern: {{ brand_concern }}<br>
Fair: {% if brand_fair > 0 %}Ja{% endif %}Nein<br>
Öklogisch: {% if brand_eco > 0 %}Ja{% endif %}Nein<br>
<h3><a href="http://localhost:8000/database/"> Neue Suche? Einfach hier klicken </a></h3>
</div>
{% endblock %}
结果如下:
我在 manage.py shell 中测试了查询,它运行良好。您还可以看到brand.name 和brand.img 以及brand.fair 和brand.eco 都显示了(即使if 语句不起作用,但这是另一个问题,但是会显示)。
也许模型也有帮助,这是品牌的模型:
class Brands(models.Model):
name = models.CharField(max_length=50, null=True)
altName = models.CharField(max_length=50, null=True)
fair = models.IntegerField()
eco = models.IntegerField()
concern = models.ForeignKey("Concerns", null=True)
company = models.ForeignKey("Companies", null=True)
url = models.CharField(max_length=50, null=True)
img = models.CharField(max_length=50, null=True)
class Meta:
db_table = "Brands"
def __str__(self):
return self.name
也许是因为 Company 和 Concern 字段是 ForeignKeys,但这会很奇怪。
提前致谢!
【问题讨论】:
-
我不相信
img通常有一个封闭的标签。你可以改用<img src="{{ brand_pic}}" >然后试试吗? -
@MattCremeens - 感谢您的评论。它没有解决我的问题,但我还是改变了它,因为你是对的,封闭标签是不必要的。
标签: python django django-templates jinja2 render