если условие не работает со строковыми переменными в шаблоне d-jango - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть модель 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 %}

models.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, пожалуйста, помогите мне!

1 Ответ

2 голосов
/ 22 сентября 2019

Изменить эту строку

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

На эту

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