哪种更好/标准做法?
return redirect('index')
return redirect('/users/new')
索引是视图函数
/ users / new是来自urls.py的urlpatterns
答案 0 :(得分:1)
直接使用网址是discouraged by Django's documentation(我的粗体):
在处理Django项目时,常见的需求是可以获取最终形式的URL,以嵌入生成的内容(视图和资产URL,向用户显示的URL等)或处理导航流程在服务器端(重定向等)
强烈希望避免对这些网址进行硬编码(一种费力的,不可扩展且容易出错的策略)。同样危险的是设计特殊机制来生成与URLconf描述的设计平行的URL,这可能导致生成随时间变得陈旧的URL。
在其他情况下,您可能希望使用reverse()
或{% url %}
,或向模型中添加get_absolute_url()
方法。
答案 1 :(得分:1)
我认为你的例子中的索引不是视图函数,而是url-name
url(r'^some/url/to/index', views.index_2, name='index')
查看函数可以有index_2
名称和任何网址路径,但您使用" index"重定向,例如return redirect(reverse('index'))
。
正如您所看到的,重定向只接受一个url路径,然后反向函数接收一个url名称并返回一个url路径,在示例中反向将返回"some/url/to/index"