2013-04-05 56 views
1

我正在研究Django上的一个简单项目。目前,我始终贯彻意见返回一个硬编码路径:如何在Django视图中避免硬编码URL

def temp_view(request): 
    ... 
    return render("app/detail.html") 

def temp_view_2(request): 
    ... 
    return redirect("/app/view2") 

我想要做的就是摆脱硬编码的URL(用于查看URL和模板URL) 。有没有适当的方法来做到这一点?

谢谢。

回答

3

Django提供了几种不同的方法。在一个视图中,django.core.urlresolvers.reverse()函数是最经常使用的。这个问题和Django提供的选项的全面讨论是在这里:

https://docs.djangoproject.com/en/dev/topics/http/urls/#reverse-resolution-of-urls

+0

谢谢,这解决了第二个例子(通过使用视图名称扭转视图URL)。第一个例子呢?这是一个html文件。 – 2013-04-05 23:05:06

+0

reverse()函数将视图的路径作为参数,所以它可以用于这两种情况。例如: case1:reverse('app.views.temp_view')和 case2:reverse('app.views.temp_view2') 磁盘上文件的路径不是URL,也不能被“反转”,因为任何数量的视图都可以使用该文件。 – 2013-04-05 23:52:17