django过滤器

2018-01-07  本文已影响0人  hs_a2d1

过滤器写在模板中,属于django模板语言。这样使用:

{{value|filter}}

value是变量,filter是过滤器。举例:

{{list_nums|length}}

返回list_nums的长度。过滤器也可以叠加:

{{value|filter1|filter2|filter3}}

这可以应用到之前写的博客项目中。之前写的edit_page.html比较复杂,因为if else 语句而有重复代码。如果把全部的article_id=0的else语句删掉,则django模板遇到不存在的变量不会报错,只会给它返回一个空字符串''。这样点开了新文章的超链接文本框里也什么都不显示。但是当输入完点下提交后会传递到响应函数edit_action一个空字符串而不是'0',这就会报错了。于是可以写value="{{ article.id|default:'0'"}}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Edit Page</title>
</head>
<body>
<form action="{% url 'blog:edit_action' %}" method="post">
    {% csrf_token %}
        <input type="hidden" name="article_id" value="{{ article.id|default:'0' }}"/>
        <label>文章标题
            <input type="text" name="title" value="{{ article.title }}"/>
        </label>
        <br/>
        <label>文章内容
            <input type="content" name="content" value="{{ article.content }}"/>
        </label>
        <br/>
    <input type="submit" value="提交">
</form> 
</body>
</html>
上一篇 下一篇

猜你喜欢

热点阅读