Je suis en train de suivre un tutoriel où mes urlpatterns sont:
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...,
)
PasswordListView et PasswordInstanceView sont censés être des vues basées sur des classes. Je n'ai pas pu comprendre la signification du paramètre nom. S'agit-il d'un paramètre par défaut transmis à la vue?
Non. C'est juste que Django vous donne la possibilité de nommer vos vues au cas où vous auriez besoin de vous y référer à partir de votre code ou de vos modèles. C'est une pratique utile et bonne car vous évitez le codage en dur URL sur votre code ou à l'intérieur de vos modèles. Même si vous modifiez l'URL réelle, vous n'avez rien d'autre à changer, car vous y ferez référence par son nom.
e.x avec vues:
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)
Plus ici .
ex. dans les modèles
<p>Please go <a href="{% url 'passwords_api_root' %}">here</a></p>
Plus ici .