Django模板和变量{%if x ==“about”%}不起作用

时间:2013-03-15 14:10:30

标签: django

如何检查x变量是否= =“关于”字符串?

我试试:

{% for x in p %}
    {% if x == "about" %}
        <a href="/about/">About</a>
    {% endif %}
{% endfor %}

{{ x }} = about

但不起作用(不显示if的内容)

编辑:

def search(request):
    if 'search' in request.GET:
        term = request.GET['search']
        if len(term) > 3:
            p = Chunk.objects.filter(Q(content__contains=term) | Q(
                key__contains=term))
            count = p.count()
            return render_to_response('search_result.html',
                {'p': p, 'count': count},
                context_instance=RequestContext(request))
    ....

Chunk来自django-chunks app

pkey来自:

class Chunk(models.Model):

    key = models.CharField(_(u'Key'), help_text=_(u"A unique name for this chunk of content"), blank=False, max_length=255, unique=True)
    content = models.TextField(_(u'Content'), blank=True)
    description = models.CharField(_(u'Description'), blank=True, max_length=64, help_text=_(u"Short Description"))

2 个答案:

答案 0 :(得分:1)

尝试这样做:

{% for x in p %}
    {% ifequal x "about" %}
        <a href="/about/">About</a>
    {% endifequal %}
{% endfor %}

<强>更新 p是QuerySet,因此x是model的实例。您应该指定包含要比较的文本的属性。

答案 1 :(得分:0)

在这种情况下,p是一个对象,而不是属性,因此您无法将字符串值“about”与对象p进行比较。如果p有一个属性,比如说“name”,你可以这样做:

{% if p.name == "about" %}