【问题标题】:Why is this not working? [Django]为什么这不起作用? [姜戈]
【发布时间】:2017-10-15 07:03:56
【问题描述】:

我正在努力解决这个问题

{% extends "base_generic.html" %}
{% block content %}        
<h1>{{ author.first_name }} {{ author.last_name }}</h1>
{% for book in view.books_by_author %}
    {% if author.last_name  in book.author %}
        <p>{{ book.title }}</p>       
    {% endif %}
{% endfor %}    
{% endblock %}

“作者”是一个上下文变量。这是 books_by_author 函数:

def books_by_author(self): 
    books = Book.objects.all()  
    return books

这部分不起作用:

{% if author.last_name  in book.author %}
        <p>{{ book.title }}</p>

但是当我尝试这个时,它正在工作。有没有办法让“book.author”成为一个字符串,或者有办法解决吗?

{% if "Twain"  in book.author %}
        <p>{{ book.title }}</p>

【问题讨论】:

  • @ChristianKönig 对于这个特定问题,我怎么能比这更具描述性?我在主题行中包含了 [Django]。

标签: python django python-3.x django-templates django-views


【解决方案1】:

你应该和相关作者的last_name比较

{% if author.last_name in book.author.last_name %}
    <p>{{ book.title }}</p>       
{% endif %}

或者更严格地说,使用==

{% if author.last_name == book.author.last_name %}
    <p>{{ book.title }}</p>       
{% endif %}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-11
    • 2018-12-16
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 2022-10-09
    • 1970-01-01
    • 2017-09-20
    相关资源
    最近更新 更多