如何在Django模板中集中URL?

dan*_*007 3 django django-templates django-urls

我在编写Django应用程序时硬编码模板中的所有URL时犯了一个错误.

例如,我的链接看起来像:

<a href="/course/63/">Advanced Basketweaving</a>
Run Code Online (Sandbox Code Playgroud)

现在,我的客户坚决要求我更改类似于此链接的所有链接实例

<a href="/class/63/">Advanced Basketweaving</a>
Run Code Online (Sandbox Code Playgroud)

"课程"取代"课程"的地方.

用艾默生的话来说,愚蠢的一致性是小脑袋的大人物,所以我必须通过艰苦的寻找和替换操作来弥补我的错误.

在这里做什么是正确的?

Ala*_*air 6

假设你的urls.py有这样一个条目:

url(r'^course/(?P<course_id>\d+)/$', view_course, name='view_course')
Run Code Online (Sandbox Code Playgroud)

您可以在模板中使用url模板标记:

<a href="{% url view_course course.id %}">Advanced Basketweaving</a>
Run Code Online (Sandbox Code Playgroud)

然后,当您的客户要求您更改网址时,您只需在urls.py中进行一次更改.

url(r'^class/(?P<course_id>\d+)/$', view_course, name='view_course')
Run Code Online (Sandbox Code Playgroud)

模板中不需要进行任何更改.

快乐的搜索和替换 - 现在你知道下次;)