Exercício – Criar exibições

Concluído

Queremos atualizar nosso aplicativo para fornecer uma lista de abrigos para cães. Também queremos que o aplicativo permita que alguém clique ou toque em um abrigo individual para ver os detalhes. Faremos isso criando duas exibições e registrando os caminhos apropriados.

Criar exibições

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

  2. No final da linha que indica from django.shortcuts import render, adicione , get_object_or_404. A linha agora indicará:

    from django.shortcuts import render, get_object_or_404
    
  3. Abaixo da linha que indica from django.shortcuts import render, adicione o seguinte código Python para importar seus modelos:

    from . import models
    
  4. Ao final de views.py, adicione o código a seguir para carregar todos os abrigos, crie o objeto de contexto para o modelo e renderizar o modelo para o usuário. Isso se tornará a exibição de lista de abrigos e a página padrão do site.

    def shelter_list(request):
        shelters = models.Shelter.objects.all()
        context = {'shelters': shelters}
        return render(request, 'shelter_list.html', context)
    
  5. Ao final de views.py, adicione o código a seguir para carregar um abrigo específico por pk ou pela chave primária, crie o objeto de contexto para o modelo e renderize o modelo para o usuário. Isso se tornará a página de detalhes de um abrigo.

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

Criar a URLconf

Para que as exibições possam ser chamadas, precisaremos registrar os caminhos apropriados.

  1. Crie um arquivo em dog_shelters chamado urls.py.

  2. Adicione o seguinte código para registrar os caminhos para as duas exibições que criamos:

    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 criamos um caminho padrão ('') para apontá-lo para a exibição shelter_list. Também registramos shelter/<int:pk> para referenciar a exibição shelter_detail. Como destacado anteriormente, pk será transmitido como o parâmetro pk para shelter_detail.

Registrar a URLconf com o projeto

O Django usa um arquivo urls.py principal como a URLconf. Como resultado, precisamos garantir que o que criamos seja devidamente registrado.

  1. Abra project/urls.py.

  2. Na parte inferior do arquivo, localize a linha 17, que indica:

    from django.urls import path
    

    Ao final da linha, adicione , include. A nova linha 17 agora será a seguinte:

    from django.urls import path, include
    
  3. Abaixo da linha que indica TODO: Register URLconf, adicione o seguinte:

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

    Importante

    A vírgula à direita é necessária.

  4. Salve todos os arquivos selecionando Arquivo>Salvar Tudo.