Ahora permitase agregar un poco mas de vistas para responsables/views.py. estas vistas son ligeramente diferentes, porque toman un argumento demas.
def detail(request, question_id): return HttpResponse("tu estas viendo una progunta %s." % question_id) def results(request, question_id): response = "tu estas viendo el resultado de un cuestionario%s." return HttpResponse(response % question_id) def vote(request, question_id): return HttpResponse("tu vas a votar por esta pregunta %s." % question_id)
Cree estos nuevos vistas en el módulo polls.urls añadiendo la siguientes llamadas a url()
from django.conf.urls import patterns, url from polls import views urlpatterns = patterns('', # ex: /polls/ url(r'^$', views.index, name='index'), # ex: /polls/5/ url(r'^(?P<question_id>\d+)/$', views.detail, name='detail'), # ex: /polls/5/results/ url(r'^(?P<question_id>\d+)/results/$', views.results, name='results'), # ex: /polls/5/vote/ url(r'^(?P<question_id>\d+)/vote/$', views.vote, name='vote'), )Eche un vistazo en su navegador, en “/polls/34/”. se va ejecutar el metodo detail() y mostrara cualquier ID que usted haya provisto en el URL. Intente con “/polls/34/results/” y “/polls/34/vote/” esto nos debería mostrar los placeholder que definimos para las páginas de resultados y para votar.Cuando alguien pide por una página de nuestro sitio – supongamos “/polls/34/”, Django va a cargar el módulo mysite.urls, al que apunta el setting ROOT_URLCONF. Encuentra la variableurlpatterns y recorre las expresiones regulares en orden. Las llamadas a include()simplemente referencian otros URLconf. Notar que las expresiones regulares para los include()no tienen un $ (caracter que indica el fin de string en un patrón), sino que terminan en una barra. Cada vez que Django encuentra un include(), recorta la parte de la URL que coincide hasta ese punto y envía el string restante al URLconf relacionado para continuar el proceso.La idea detrás de include() es hacer fácil tener URLs plug-and-play. Como polls tiene su propio URLconf (polls/urls.py), las URLs de la app se pueden poner bajo “/polls/”, o bajo “/fun_polls/”, o bajo “/content/polls/”, o cualquier otro camino, y la app seguirá funcionando.Esto es lo que pasa si un usuario va a “/polls/34/” en este sistema:
- Django encontrará coincidencia en '^polls/'
- Entonces, Django va a recortar el texto que coincide ("polls/") y enviar el texto restante –"34/" – al URLconf ‘polls.urls’ para seguir el proceso, donde coincidirá con r'^(?P<poll_id>\d+)/$', resultando en una llamada a la view detail() de la forma:
No hay comentarios:
Publicar un comentario