我正在探索我的朋友项目,当我查看urls.py文件时,我注意到了这一点:
url(r'^apply/$', contact.as_view(), name='careers_contact'),
我刚刚了解了基于类的视图,除了最后一位name='careers_contact'
之外,这对我来说都是有意义的。我似乎也无法在网上找到这个含义。
有人可以说明这是什么,这个名字在哪里生活,它的作用是什么?
答案 0 :(得分:10)
url()
name
参数“它是什么?它住在哪里?”
url()
只是一个返回django.core.urlresolvers.RegexURLPattern
对象的函数,因此传入name='careers_contact'
参数为该对象设置name
。在将url(...)
放入URLconf之前,这些都不是真正相关的。
那么,如果我们需要视图的网址,我们现在可以通过将name
传递到模板中的{% url 'careers_contact' %}
或代码中的reverse('careers_contact')
以及后端这些函数来获取它使用name
映射回正确的网址。
为什么我们需要它?
我们可以反转Python路径来获取网址(例如reverse(blog.views.home)
),那么使用name
的重点是什么?
(点击链接查看问题示例以及命名/命名空间如何解决问题)
答案 1 :(得分:3)
他们可能为URL添加名称空间的原因是他们可以执行反向命名空间URL。
例如,在某个模板中,您可能会看到类似的内容:
<a href="{% URL 'contact:careers_contact' %}"> Click me! </a>