无法比较Django模板中的字符串

时间:2018-03-14 09:00:15

标签: python django python-3.x

这是我的模板:

    <p>{{ instance.video_source }}</p> #"youtube"
    {% if instance.video_source == "youtube" %}
        <h1>YOUTUBE</h1> #doesn't print "YOUTUBE"
    {% endif %}

知道为什么if语句不会触发?我也试过{% if instance.video_source == youtube|stringify %}

这是这个模板标签:

def stringify(obj):
    return str(obj)

并且if语句仍然不会触发。这也行不通

{% if instance.video_source == youtube|stringformat:"s" %}
    <h1>YOUTUBE</h1>
{% endif %}

以下是instance.video_source的来源:

@property
def video_source(self):
    return "youtube"

知道为什么if语句不起作用?

views.py

def article(request, id):

    instance = get_object_or_404(Post, id=id)

    context = {
        'id': id,
        'instance': instance,
    }

    return render(request, 'article.html', context)

models.py

class Post(models.Model):
    title = models.TextField(max_length=95)

    @property
    def video_source(self):
        return "youtube"

模板

{% extends 'base/base.html' %}

{% load staticfiles %}
{% load widget_tweaks %}
{% load markdown_deux_tags %}
{% load placeholder %}
{% load stringify %}

{% block content %}
    <p>{{ instance.video_source }}</p> #"youtube"
    {% if instance.video_source == "youtube" %}
        <h1>YOUTUBE</h1> #doesn't print "YOUTUBE"
    {% endif %}
{% endblock %}

0 个答案:

没有答案