6.django之模板

2017-12-05  本文已影响0人  马梦里

一、首页视图模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
    <h1>Welcom to MJ'S blog!</h1>
    {% for category in categories %}
    <p>
        <a href="{% url 'mamengli_blog:page_list' category.course %}">{{category}}</a>
    </p>
    {% endfor %}
    {% for page in pages %}
    <p>
        {{page}}
    </p>
    {% endfor %}
</body>
</html>

这里有两点需要注意:
1.mamengli_blog命名空间包含的是mamengli_blog应用下的所有路由,page_list是该项目下具体路由的名字,这样就不用一个一个去匹配网址,直接精准定位。而且方便更改,方便书写;
2.该网址为动态网址,有一个变量,需要传参:
url(r'^category/(?P<category_name_slug>[\w\-]+)/$', views.index, name='page_list')
那么如何在模板中进行传参呢?直接写在路由名字的外面,需要传几个参数,就写几个。

二、课程文章列表模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>course</title>
</head>
<body>
    {{category.course}}
    {% for page in pages %}
    <p>
        <a href="{% url 'mamengli_blog:page_detail' page.category.slug page.id %}">{{page.title}}</a>
    </p>
    {% endfor %}
</body>
</html>

这里有两点需要注意:
1.当获得文章列表后,每篇文章都有一个超链接,需要两个参数:当前的课程以及该文章的id。当前课程可以通过文章的外键的slug(非course)属性获得。
2.当url需要两个参数的时候,直接在后面写:
<a href="{% url 'mamengli_blog:page_detail' page.category.slug page.id %}">

上一篇 下一篇

猜你喜欢

热点阅读