首页 > 解决方案 > 如果条件不适用于 django 模板中的字符串变量

问题描述

我有一个模型Book,其中包含一个CharField: 'category'描述书籍类型的模型,我想根据书籍类型显示书籍的信息。

我试过这个:

{% for category in categories %}
 <div class="row">
  <div class="title-section mb-5 col-12">
   <h2>Popular in {{category}}</h2>
  </div>
  </div>
  <div class="row">
   {% for book in books %}
    {% if book.category == '{{category}}' %}
     <div class="col-lg-4 col-md-6 item-entry mb-4">
      <a href="#" class="product-item md-height bg-gray d-block">
       <img src='/media/{{book.img}}' alt="Image" class="img-fluid">
      </a>
      <h2 class="item-title"><a href="#">{{ book.title }}</a></h2>
      <strong class="item-price">Rs. {{ book.price }}</strong>
     </div>
    {% endif %}
   {% endfor %}
  </div>
{% endfor %}

模型.py:


def main(request):
    books = Book.objects.all()
    categories = []

    for book in books:
         categories.append(book.category)

    categories = list(set(categories))

    return render(request, "index.html", {'books': books, 'categories': categories,})

但这不起作用,它只显示:

在小说中流行

在励志中流行

受欢迎的信息

青少年流行

流行于自传

不显示任何书籍的信息。我认为有问题if condition请帮助我!

标签: pythondjangodjango-templates

解决方案


更改此行

{% if book.category == '{{category}}' %}

对此

{% if book.category == category %}

推荐阅读