utility function

  • reverse() viewname이 URL pattern name이 될 수 있다.
from news import views

path('archive/', views.archive, name='news-archive')
# using the named URL
reverse('news-archive')

# passing a callable object
# (This is discouraged because you can't reverse namespaced views this way.)
from news import views
reverse(views.archive)

url이 arguments를 수용한다면, args로 넘길 수 있다.

from django.urls import reverse

def myview(request):
    return HttpResponseRedirect(reverse('arch-summary', args=[1945]))

kwargs도 가능하다.

>>> reverse('admin:app_list', kwargs={'app_label': 'auth'})
'/admin/auth/'


  • reverse_lazy(viewname, urlconf=None, args=None, kwargs=None, current_app=None)

  • generic class-based view에서 reversed URL 제공
  • decorator에 reversed URL 제공
  • function signature에서 reversed URL을 default value로 제공


  • resolve(path, urlconf=None)

path와 일치하는 url pattern을 돌려준다.

match = resolve('/some/path/')
# Print the URL pattern that matched the URL

Http404를 이용해 redirect 할 때 사용하기 좋다.


  • get_script_prefix()

Django project base url을 return한다. Django project가 web server의 root면 항상 “/”


출처

https://docs.djangoproject.com/en/3.1/ref/urlresolvers/