Ejercicio: Creación de vistas

Completado

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

  1. En Visual Studio Code, abra dog_shelters/views.py.

  2. 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
    
  3. 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
    
  4. 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)
    
  5. 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.

  1. Cree un nuevo archivo en dog_shelters denominado urls.py.

  2. 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.

  1. Abra project/urls. py.

  2. 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
    
  3. 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.

  4. Guarde todos los archivos; para ello, seleccione Archivo>Guardar todo.