Exercício - Criar vistas

Concluído

Queremos atualizar a nossa aplicação 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 visualizações e, em seguida, registrando os caminhos apropriados.

Criar vistas

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

  2. No final da linha onde se lê from django.shortcuts import render, adicione , get_object_or_404. A linha deve agora ler-se:

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

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

    def shelter_list(request):
        shelters = models.Shelter.objects.all()
        context = {'shelters': shelters}
        return render(request, 'shelter_list.html', context)
    
  5. No final de views.py, adicione o código a seguir para carregar um abrigo específico por sua pk chave primária, crie o objeto de contexto para o modelo e, em seguida, renderize o modelo para o usuário. Esta será 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 o URLconf

Para que os nossos pontos de vista sejam exigíveis, precisamos de registar os caminhos adequados.

  1. Crie um novo arquivo no dog_shelters chamado urls.py.

  2. Adicione o seguinte código para registrar os caminhos para os dois modos de exibição 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 apontar para nossa shelter_list exibição. Também nos registámos shelter/<int:pk> para referenciar a nossa shelter_detail opinião. Como destacado anteriormente, pk será passado como o pk parâmetro para shelter_detail.

Registe-se URLconf com o nosso projeto

Django usa um núcleo urls.py arquivo como seu URLconf. Consequentemente, temos de garantir que aquele que criámos está devidamente registado.

  1. Abrir projeto/urls.py.

  2. Na parte inferior do arquivo, encontre a linha 17, que diz:

    from django.urls import path
    

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

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

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

    Importante

    A vírgula à direita é obrigatória.

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