【NB】删除模板硬编码网址
http://cdn.u1.huluxia.com/g4/M01/E4/11/rBAAdmNt5rqAKih9AADQ4EfoNCk481.jpg
请记住,当我们在 polls/index.html 链接到一个问题,链接被硬编码的部分是这样的:
<li><ahref="/polls/{{question.id}}/">{{question.question_text}}</a></li>http://cdn.u1.huluxia.com/g4/M01/E4/11/rBAAdmNt5rqAf_3jAACN6TPD9w4077.jpg
使用此硬编码,紧密耦合的方法的问题是:它在更改项目的URL用了很多模板。不过,既然 polls.urls模块中定义名称参数url() 函数,您可以通过使用 {% url %}模板删除标签在URL配置中定义的特定URL路径的依赖:
<li><ahref="{%url'detail'question.id%}">{{question.question_text}}</a></li>
http://cdn.u1.huluxia.com/g4/M01/E4/11/rBAAdmNt5ruAGRmhAACdKnG9NT8233.jpg
这种工作方式是通过为polls.urls模块中指定查找的URL定义。可以准确地看到'detail'的URL名称定义如下:
...
# the 'name' value as called by the {% url %} template tag
url(r'^(?P<question_id>+)/$', views.detail, name='detail'),
...
http://cdn.u1.huluxia.com/g4/M01/E4/11/rBAAdmNt5ryAFK5HAADSEtEkvfc682.jpg
如果你想要把投票详细视图的URL更改成其它的,也许像 polls/specifics/12/ 取代在模板(或templates),需要在 polls/urls.py 改变它:
...
# added the word 'specifics'
url(r'^specifics/(?P<question_id>+)/$', views.detail, name='detail'),
...
http://cdn.u1.huluxia.com/g4/M01/E4/11/rBAAdmNt5r2AGkumAADBHm9whxk401.jpg
页:
[1]