Ejercicio: Creación de vistas
Queremos actualizar la aplicación para proporcionar una lista de los refugios para perros. También queremos que la aplicación permita a alguien hacer clic o pulsar en un refugio individual para ver los detalles. Lo haremos creando dos vistas y registrando las rutas de acceso adecuadas.
Creación de vistas
En Visual Studio Code, abra dog_shelters/views.py.
Al final de la línea que con el texto
from django.shortcuts import render
, agregue, get_object_or_404
. Ahora, la línea debería decir lo siguiente:from django.shortcuts import render, get_object_or_404
Debajo de la línea con el texto
from django.shortcuts import render
, agregue el siguiente código de Python para importar los modelos:from . import models
Al final de views.py, agregue el código siguiente para cargar todos los refugios, crear el objeto de contexto para la plantilla y, después, representar la plantilla para el usuario. Esto se convertirá en nuestra vista de lista para los refugios y la página predeterminada de nuestro sitio web.
def shelter_list(request): shelters = models.Shelter.objects.all() context = {'shelters': shelters} return render(request, 'shelter_list.html', context)
Al final de views.py, agregue el código siguiente para cargar un refugio concreto por su
pk
o su clave principal, crear el objeto de contexto para la plantilla y, después, representar la plantilla para el usuario. Se convertirá en la página de detalles de un refugio.def shelter_detail(request, pk): shelter = get_object_or_404(models.Shelter, pk=pk) context = {'shelter': shelter} return render(request, 'shelter_detail.html', context)
Creación del URLconf
Para que se pueda llamar a nuestras vistas, es necesario registrar las rutas de acceso adecuadas.
Cree un nuevo archivo en dog_shelters denominado urls.py.
Agregue el código siguiente para registrar las rutas de acceso de las dos vistas que hemos creado:
from django.urls import path from . import views urlpatterns = [ path('', views.shelter_list, name='shelter_list'), path('shelter/<int:pk>', views.shelter_detail, name='shelter_detail'), # More patterns to come later ]
Observe que hemos creado una ruta de acceso predeterminada (''
) para que apunte a nuestra vista shelter_list
. También hemos registrado shelter/<int:pk>
para que haga referencia a nuestra vista shelter_detail
. Como se ha resaltado anteriormente, pk
se pasará como el parámetro pk
a shelter_detail
.
Registro de URLconf con nuestro proyecto
Django usa un archivo urls.py principal como URLconf. Como resultado, debemos asegurarnos de que el que hemos creado esté correctamente registrado.
Abra project/urls. py.
Hacia la parte inferior del archivo, busque la línea 17, que dice:
from django.urls import path
Al final de la línea, agregue
, include
. Ahora, la nueva línea 17 debe ser la siguiente:from django.urls import path, include
Debajo de la línea en la que pone
TODO: Register URLconf
, agregue lo siguiente:# TODO: Register URLconf path('', include('dog_shelters.urls')),
Importante
La coma final es necesaria.
Guarde todos los archivos; para ello, seleccione Archivo>Guardar todo.