最近在学习django以便搞定毕业设计的事情,在学习过程中,不断出现这样的代码
<p>
<a href="{% url 'learningsite:edit_entry' entry.id %}">Edit entry</a>
</p>
一直没法理解 {% url %} 模板标签里的参数意义是什么,觉得不是滋味,遂baidu学习,作此记录。
{% url %} 模板标签的作用是解析视图函数 learningsite:edit_entry
对应的URL模式
这个模板标签接收的第一个参数为被解析视图函数的端点值,这个端点值由两个部分组成,中间用一个冒号相隔。冒号的第一部分为在应用的urls.py中确定的app_name的值
app_name = 'learningsite'
冒号的第二部分为 path 函数中传入的参数 name 的值,如下:
path('edit_entry/<int:entry_id>', views.edit_entry, name='edit_entry')
因此对应的端点值为 learningsite:edit_entry
此模板标签第其余参数为URL路径参数,即URL模式中路径参数转换器需要捕获的值。如edit_entry视图函数对应的URL模式 edit_entry/<int:entry_id>
假设 entry_id=1
,那么 {% url 'learningsite:edit_entry' entry.id %}
模板标签返回的值为/edit_entry/1/