45

私はurlpatternsがあるチュートリアルに従っています:

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は、クラス ベースのビューであると想定されています。nameパラメータの意味がわかりませんでした。ビューに渡されるデフォルトのパラメータですか?

4

1 に答える 1

59

いいえ。コードまたはテンプレートからビューを参照する必要がある場合に備えて、djangoにビューに名前を付けるオプションが用意されているだけです。コード上またはテンプレート内でURLをハードコーディングすることを避けるため、これは便利で良い習慣です。実際のURLを変更しても、名前で参照するため、他に変更する必要はありません。

ビュー付きの例:

from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse #this is deprecated in django 2.0+
from django.urls import reverse #use this for django 2.0+

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

詳細はこちら

テンプレートの例

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

詳細はこちら

于 2012-10-10T12:06:25.663 に答える