Django url模式的第三个参数是什么?

时间:2015-12-21 16:17:59

标签: python django

我是Django的新手,我正在努力理解它。如果我写这样的网址模式

url(r'^$', 'newsletter.views.home', name='home'),

它有效。如果我这样写呢

url(r'^$', 'newsletter.views.home'),

它仍然有效,但我从服务器获得以下数据

RemovedInDjango110Warning:不支持对url()的字符串视图参数的支持,将在Django 1.10中删除(获取newsletter.views.contact)。传递可调用的。   url(r' ^ contact / $',' newsletter.views.contact'),

我的第一个问题是第三个论点是做什么的。在

name='home' or name='contact'. What is it reffering to.

我的第二个问题是

Pass the callable instead.

意思?再一次,我已经阅读了文档,并且来到这里,以便在外行人的术语中更加清晰。欢迎提供所有帮助和建议

1 个答案:

答案 0 :(得分:4)

当它表示传递callable时,表示你应该导入视图本身并将其包含在你的url模式中。

from newsletter.views import home

url(r'^$', home, name='home'),

另一种选择是导入views模块本身

# renaming allows us to import more than one views at once
from newsletter import views as newsletter_views

url(r'^$', newsletter_views.home, name='home'),

命名网址模式允许您反转网址模式(例如,从名称转到网址)。这意味着您不必在视图和模板中对网址进行硬编码。

如果你有

url(r'^home/$', home, name='home'),

然后您可以在代码中使用reverse('home'),在模板中使用{% url 'home' %},而不是重复编写/home/

相关问题