如何在django-template中仅显示特定的变量信息?

时间:2010-10-12 16:57:11

标签: django django-models django-templates django-views

例如,如果我在模板中有以下模型,视图和代码......

class news(models.Model):
    type = models.ForeignKey(----)  (charfield)
    title = models.CharField(max_length=100)
    published = models.DateTimeField(default=datetime.now)
    summary = models.CharField(max_length=200)

def ----():
    items = news.objects.all().order_by('-published')[:5]
    return {'items': items}

{% if items %}
<ul>
{% for item in items|slice:":2" %}
<li>{{ item.title }}</li>
<li>{{ item.summary }}</li>
{% endfor %}
<ul>
{% endif %}

您将如何显示仅特定类型的商品。使用上面的模板代码。

e.g。显示所有只有type = Worldnews的项目。

我知道这通常是在视图中实现的,但我想知道如何在模板中实现这一点。

非常感谢所有帮助。

3 个答案:

答案 0 :(得分:1)

尝试在模板中实现它是一个非常糟糕的主意。也是不可能的。

模板的整体思想是将逻辑与表示分开。 Django创建者只为非常简单的演示文稿设计了模板,所以据我所知这是不可能的。

编辑:这不是真的不可能,但不是很简单,也不是一个好主意。见评论。

答案 1 :(得分:0)

我错过了什么,这看起来很简单:

{% if items %}
<ul>
{% for item in items %}
    {% ifequal item.type "Worldnews" %}
        <li>{{ item.title }}</li>
        <li>{{ item.summary }}</li>
    {% endifequal %}
{% endfor %}
<ul>
{% endif %}

正如其他人所说,在视图功能中做得更好。

答案 2 :(得分:-1)

news.objects.get(type__exact="Worldnews")

编辑:将上述内容用于该视图所需的类型。

相关问题