Нам нужно создать 2 вида:
- индексный - для вывода списка проектов на страницу;
- детальный - для вывода полного описания конкретного проекта.
Для создания видов откройте файл my-portfolio\projects\views.py и добавьте в него следующее содержимое (2-12 строки):
from django.shortcuts import render
from projects.models import Project
def project_index(request):
projects = Project.objects.all()
context = {"projects": projects}
return render(request, "project_index.html", context)
def project_detail(request, pk):
project = Project.objects.get(pk=pk)
context = {"project": project}
return render(request, "project_detail.html", context)
В методе project_index() в переменную projects получаем все записи из БД и помещаем ее в переменную context. Данная переменная нужна обязательно, потому что с помощью нее данные передаются в шаблон страницы.
В методе project_detail() в переменную project помещаем запись с первичным ключом (primary key) из параметра метода.
Теперь нужно указать по каким URL из браузера будут срабатывать эти методы. Для этого в папке projects создадим файл urls.py. Откроем его и добавим следующее содержимое:
from django.urls import path
from . import views
urlpatterns = [
path("", views.project_index, name="project_index"),
path("<int:pk>/", views.project_detail, name="project_detail"),
]
Теперь в файле personal_portfolio/urls.py указать о существовании нового файла urls.py (с 1 по 6 строку).
from django.urls import path, include
urlpatterns = [
path("admin/", admin.site.urls),
path("projects/", include("projects.urls")),
]
Теперь индексную страницу портфолио можно будет открыть по адресу:
localhost:8000/projects
А детальную страницу (например, с первым проектом) по адресу:
localhost:8000/projects/1
Осталось добавить шаблоны, для вывода содержимого из БД в браузере.