Python Django不';t在几行之后渲染变量

Python Django不';t在几行之后渲染变量,python,django,django-templates,jinja2,render,Python,Django,Django Templates,Jinja2,Render,我就是不明白。不知何故,django不想呈现两个变量brand_company和brand_concern,即使django之前做了两行 这是我在my views.py中的定义: def BrandDetails(request, brand_id): brand = Brands.objects.get(id=brand_id) brand_name = brand.name brand_pic = brand.img brand_concern = Conce

我就是不明白。不知何故,django不想呈现两个变量brand_company和brand_concern,即使django之前做了两行

这是我在my 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 %}
也许是因为公司和关注领域都是外国人,但那会很奇怪


提前谢谢

品牌公司没有出现在模板中的原因是

brand_company = Companies.objects.filter(id=brand.company.pk)
brand\u company
是一个查询集

所以你需要在模板中这样做

Unternehmen: {% for company in brand_company %} {{ company }}{% endfor %}<br>
为什么您的if语句不起作用:

因为,您在else语句之前结束了if语句

应该是这样,

{% if brand_eco > 0 %}Ja{% else %}Nein{% endif %}<br>
{%if brand_eco>0%}Ja{%else%}Nein{%endif%}

该品牌公司没有出现在模板中的原因是

brand_company = Companies.objects.filter(id=brand.company.pk)
brand\u company
是一个查询集

所以你需要在模板中这样做

Unternehmen: {% for company in brand_company %} {{ company }}{% endfor %}<br>
为什么您的if语句不起作用:

因为,您在else语句之前结束了if语句

应该是这样,

{% if brand_eco > 0 %}Ja{% else %}Nein{% endif %}<br>
{%if brand_eco>0%}Ja{%else%}Nein{%endif%}

我不相信
img
通常有一个封闭的标签。你能改用
然后试试吗?@MattCremeens-谢谢你的评论。它没有解决我的问题,但我还是改变了它,因为你是对的,关闭的标签是不必要的。我不相信
img
通常有一个关闭的标签。你能改用
然后试试吗?@MattCremeens-谢谢你的评论。它没有解决我的问题,但我还是改变了它,因为你是对的,关闭的标签是不必要的。是的。。怎么样@AnthonyHey@Fazil Zaid,谢谢你的回答。首先,我想问你,你为什么把.get(id=brand.concern\u id)改为.get(id=brand.concern.pk)。使用pk而不是id更常见吗?关于if语句,它与python代码中的类似,您也不需要编写“else”-关键字。但即使我像你说的那样更正代码,它仍然总是假装一切都是0,所以它总是返回“Nein”。但正如我所说,这是另一个问题。稍后我会处理它。为什么要更改。get(id=brand.concern\u id)到。get(id=brand.concern.pk)。使用pk而不是id更常见吗?=>我更改了它,因为brand对象没有一个名为concern_id的字段,但它有一个字段concern,并且它有一个id,所以应该写入brand.concern.pk或brand.concern.id。另外,您没有明确指定主键。。那么concern.pk会自动找到我你对答案满意吗?是的。。怎么样@AnthonyHey@Fazil Zaid,谢谢你的回答。首先,我想问你,你为什么把.get(id=brand.concern\u id)改为.get(id=brand.concern.pk)。使用pk而不是id更常见吗?关于if语句,它与python代码中的类似,您也不需要编写“else”-关键字。但即使我像你说的那样更正代码,它仍然总是假装一切都是0,所以它总是返回“Nein”。但正如我所说,这是另一个问题。稍后我会处理它。为什么要更改。get(id=brand.concern\u id)到。get(id=brand.concern.pk)。使用pk而不是id更常见吗?=>我更改了它,因为brand对象没有一个名为concern_id的字段,但它有一个字段concern,并且它有一个id,所以应该写入brand.concern.pk或brand.concern.id。另外,您没有明确指定主键。。那么concern.pk会自动获取我您对答案满意吗?