2012-10-10 110 views
30

名稱參數我下面的教程在我的URL模式是:Django中,在URL模式

urlpatterns = patterns('', 
    url(r'^passwords/$', PasswordListView.as_view(), name='passwords_api_root'), 
    url(r'^passwords/(?P<id>[0-9]+)$', PasswordInstanceView.as_view(), name='passwords_api_instance'), 
    ...other urls here..., 
) 

PasswordListViewPasswordInstanceView應該是基於類的觀點。 我想不通這個名字的含義參數。它是傳遞給視圖的默認參數嗎?

回答

39

不,只是django讓你選擇命名你的視圖,以防你需要從你的代碼或你的模板中引用它們。這是非常有用且很好的做法,因爲您可以避免在您的代碼或模板中使用硬編碼的URL。即使您更改了實際的網址,您也不必更改其他任何內容,因爲您會按名稱引用它們。

e.x與觀點:

from django.http import HttpResponseRedirect 
from django.core.urlresolvers import reverse 

def myview(request): 
    passwords_url = reverse('passwords_api_root') # this returns the string `/passwords/` 
    return HttpResponseRedirect(passwords_url) 

更多here

e.x. in模板

<p>Please go <a href="{% url 'passwords_api_root' %}">here</a></p> 

更多here

+0

in views.py,'resolve_url('passwords_api_root',args)'爲我工作 – BeatriceThalo