Exercice - Créer des vues

Effectué

Nous voulons mettre à jour notre application pour fournir la liste des refuges pour chiens. Nous souhaitons également que l’application permette à un utilisateur de cliquer ou d’appuyer sur un refuge pour voir les informations le concernant. Pour ce faire, nous allons créer deux vues, puis enregistrer les chemins appropriés.

Créer des vues

  1. Dans Visual Studio Code, ouvrez dog_shelters/views.py.

  2. À la fin de la ligne from django.shortcuts import render, ajoutez , get_object_or_404. La ligne contient désormais le texte suivant :

    from django.shortcuts import render, get_object_or_404
    
  3. Sous la ligne from django.shortcuts import render, ajoutez le code Python suivant pour importer vos gabarits :

    from . import models
    
  4. À la fin de views.py, ajoutez le code suivant pour charger tous les refuges, créez l’objet de contexte pour le gabarit, puis affichez le gabarit pour l’utilisateur. Cela deviendra la vue de liste de tous les refuges ainsi que la page par défaut de notre site.

    def shelter_list(request):
        shelters = models.Shelter.objects.all()
        context = {'shelters': shelters}
        return render(request, 'shelter_list.html', context)
    
  5. À la fin de views.py, ajoutez le code suivant pour charger un refuge selon son pk (clé primaire), créez l’objet de contexte pour le gabarit, puis affichez le gabarit pour l’utilisateur. Celle-ci deviendra la page d’informations du refuge.

    def shelter_detail(request, pk):
        shelter = get_object_or_404(models.Shelter, pk=pk)
        context = {'shelter': shelter}
        return render(request, 'shelter_detail.html', context)
    

Créer le URLconf

Pour que nos vues puissent être appelées, nous devons inscrire les chemins appropriés.

  1. Créez un fichier nommé urls.py dans dog_shelters.

  2. Ajoutez le code suivant afin d’inscrire les chemins pour les deux vues que nous avons créées :

    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
    ]
    

Notez que nous avons créé un chemin par défaut ('') pour pointer vers notre vue shelter_list. Nous avons également inscrit shelter/<int:pk> pour référencer notre vue shelter_detail. Comme nous l’avons dit plus tôt, pk sera passé à shelter_detail en tant que paramètre pk.

Inscrire URLconf dans notre projet

Pour son URLconf, Django utilise un fichier urls.py principal. Par conséquent, nous devons vérifier que celui que nous avons créé est correctement inscrit.

  1. Ouvrez project/urls.py.

  2. Vers le bas du fichier, recherchez la ligne 17 qui comprend le texte suivant :

    from django.urls import path
    

    À la fin de la ligne, ajoutez , include. La nouvelle ligne 17 doit désormais contenir le texte suivant :

    from django.urls import path, include
    
  3. Sous la ligne TODO: Register URLconf, ajoutez le code suivant :

    # TODO: Register URLconf
    path('', include('dog_shelters.urls')),
    

    Important

    La virgule de fin est obligatoire.

  4. Enregistrez tous les fichiers en sélectionnant Fichier>Tout enregistrer.