django.urls.reverse
はよくわからなくなることが多いのでまとめる。
reverse とは
Django の urls に設定された名前をパラメータとして渡すと、URLを返す。
sampleapp.urls.py
# 情報足りてないかも知れませんが、大体で理解してください。
urlpatterns = [
url(r'^send_mail/$', send_mail_view, name="send_mail"),
url(r'^item/<pk>/$', item_detail_view, name="item_detail"),
]
上記URL の設定がある前提で、以下のように使う。
reverse("sampleapp:send_mail")
# /send_mail/ を返す
reverse にパラメータを渡す(query)
"".join([reverse('sampleapp:send_mail'),'?',urlencode(dict(limit='10', flg='1'))])
# '/send_mail/?limit=10&flg=1' を返す
reverse にパラメータを渡す(path)
reverse('sampleapp:item_detail', kwargs=dict(pk=u'7'))
# '/item/7/' を返す