演習 - ビューを作成する
犬用シェルターの一覧を提供するようにアプリケーションを更新します。 また、アプリケーションで他のユーザーが個々のシェルターをクリックまたはタップして詳細を表示できるようにします。 これを行うには、2 つのビューを作成してから、適切なパスを登録します。
ビューの作成
Visual Studio Code で dog_shelters/views.py を開きます。
from django.shortcuts import render
という行の末尾に, get_object_or_404
を追加します。 行は次のようになります。from django.shortcuts import render, get_object_or_404
from django.shortcuts import render
という行の下に、モデルをインポートする次の Python コードを追加します。from . import models
views.py の最後に、すべてのシェルターを読み込む次のコードを追加して、テンプレートのコンテキスト オブジェクトを作成してから、ユーザーのテンプレートをレンダリングします。 これは、シェルターのリスト ビューおよびサイトの既定のページになります。
def shelter_list(request): shelters = models.Shelter.objects.all() context = {'shelters': shelters} return render(request, 'shelter_list.html', context)
views.py の最後に、その
pk
または主キーで特定のシェルターを読み込む次のコードを追加して、テンプレートのコンテキスト オブジェクトを作成してから、ユーザーのテンプレートをレンダリングします。 これは、シェルターの [詳細] ページになります。def shelter_detail(request, pk): shelter = get_object_or_404(models.Shelter, pk=pk) context = {'shelter': shelter} return render(request, 'shelter_detail.html', context)
URLconf を作成する
ビューを呼び出せるようにするには、適切なパスを登録する必要があります。
urls.py という名前の新しいファイルを dog_shelters に作成します。
次のコードを追加して、作成した 2 つのビューのパスを登録します。
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 ]
shelter_list
ビューをポイントする既定のパス (''
) が作成されていることに注目してください。 また、shelter_detail
ビューを参照するように shelter/<int:pk>
を登録しました。 前に強調したように、pk
は pk
パラメーターとして shelter_detail
に渡されます。
URLconf をプロジェクトに登録する
Django では、1 つのコア urls.py ファイルが URLconf として使用されます。 そのため、作成したものが適切に登録されていることを確認する必要があります。
project/urls.py を開きます。
ファイルの末尾に向かって、次のような 17 行目を検索します。
from django.urls import path
行の末尾に
, include
を追加します。 新しい 17 行目は次のようになります。from django.urls import path, include
TODO: Register URLconf
という行の下に、次を追加します。# TODO: Register URLconf path('', include('dog_shelters.urls')),
重要
末尾にコンマが必要です。
[ファイル]>[すべて保存] を選択して、すべてのファイルを保存します。