diff --git a/acme_project/birthday/urls.py b/acme_project/birthday/urls.py index 3ecdf615f..68761aa26 100644 --- a/acme_project/birthday/urls.py +++ b/acme_project/birthday/urls.py @@ -7,8 +7,10 @@ app_name = "birthday" urlpatterns = [ - path("", views.birthday, name="create"), - path("list/", views.birthday_list, name="list"), + # path("", views.birthday, name="create"), + path('', views.BirthdayCreateView.as_view(), name='create'), + # path("list/", views.birthday_list, name="list"), + path("list/", views.BirthdayListView.as_view(), name="list"), path("/edit/", views.birthday, name="edit"), path('/delete/', views.delete_birthday, name='delete'), ] diff --git a/acme_project/birthday/views.py b/acme_project/birthday/views.py index aeaef67a2..f6cc71894 100644 --- a/acme_project/birthday/views.py +++ b/acme_project/birthday/views.py @@ -2,7 +2,9 @@ from django.shortcuts import get_object_or_404, render, redirect # Импортируем класс пагинатора. -from django.core.paginator import Paginator +# from django.core.paginator import Paginator +from django.views.generic import ListView, CreateView +from django.urls import reverse_lazy from .forms import BirthdayForm from .models import Birthday @@ -41,23 +43,41 @@ def birthday(request, pk=None): return render(request, "birthday/birthday.html", context) -def birthday_list(request): - """Docstring.""" - # Получаем список всех объектов с сортировкой по id. - birthdays = Birthday.objects.order_by('id') - # Создаём объект пагинатора с количеством 10 записей на страницу. - paginator = Paginator(birthdays, 10) +class BirthdayCreateView(CreateView): + model = Birthday + # Указываем имя формы: + form_class = BirthdayForm + template_name = 'birthday/birthday.html' + success_url = reverse_lazy('birthday:list') + + +# def birthday_list(request): +# """Docstring.""" +# # Получаем список всех объектов с сортировкой по id. +# birthdays = Birthday.objects.order_by('id') +# # Создаём объект пагинатора с количеством 10 записей на страницу. +# paginator = Paginator(birthdays, 2) + +# # Получаем из запроса значение параметра page. +# page_number = request.GET.get('page') +# # Получаем запрошенную страницу пагинатора. +# # Если параметра page нет в запросе или его значение не приводится к числу, +# # вернётся первая страница. +# page_obj = paginator.get_page(page_number) +# # Вместо полного списка объектов передаём в контекст +# # объект страницы пагинатора +# context = {'page_obj': page_obj} +# return render(request, 'birthday/birthday_list.html', context) + - # Получаем из запроса значение параметра page. - page_number = request.GET.get('page') - # Получаем запрошенную страницу пагинатора. - # Если параметра page нет в запросе или его значение не приводится к числу, - # вернётся первая страница. - page_obj = paginator.get_page(page_number) - # Вместо полного списка объектов передаём в контекст - # объект страницы пагинатора - context = {'page_obj': page_obj} - return render(request, 'birthday/birthday_list.html', context) +# Наследуем класс от встроенного ListView: +class BirthdayListView(ListView): + # Указываем модель, с которой работает CBV... + model = Birthday + # ...сортировку, которая будет применена при выводе списка объектов: + ordering = 'id' + # ...и даже настройки пагинации: + paginate_by = 2 def delete_birthday(request, pk): diff --git a/acme_project/media/birthdays_images/Screenshot_from_2023-12-01_22-49-01.png b/acme_project/media/birthdays_images/Screenshot_from_2023-12-01_22-49-01.png new file mode 100644 index 000000000..2b5fefbd6 Binary files /dev/null and b/acme_project/media/birthdays_images/Screenshot_from_2023-12-01_22-49-01.png differ diff --git a/acme_project/media/birthdays_images/Screenshot_from_2024-04-11_23-44-44.png b/acme_project/media/birthdays_images/Screenshot_from_2024-04-11_23-44-44.png new file mode 100644 index 000000000..67165a32e Binary files /dev/null and b/acme_project/media/birthdays_images/Screenshot_from_2024-04-11_23-44-44.png differ diff --git a/acme_project/media/birthdays_images/Screenshot_from_2024-04-29_23-14-54.png b/acme_project/media/birthdays_images/Screenshot_from_2024-04-29_23-14-54.png new file mode 100644 index 000000000..d09f83d49 Binary files /dev/null and b/acme_project/media/birthdays_images/Screenshot_from_2024-04-29_23-14-54.png differ diff --git a/acme_project/media/birthdays_images/Screenshot_from_2024-04-29_23-14-54_c6aD3Kn.png b/acme_project/media/birthdays_images/Screenshot_from_2024-04-29_23-14-54_c6aD3Kn.png new file mode 100644 index 000000000..d09f83d49 Binary files /dev/null and b/acme_project/media/birthdays_images/Screenshot_from_2024-04-29_23-14-54_c6aD3Kn.png differ diff --git a/acme_project/media/birthdays_images/image_1.png b/acme_project/media/birthdays_images/image_1.png deleted file mode 100644 index c5ff08ae0..000000000 Binary files a/acme_project/media/birthdays_images/image_1.png and /dev/null differ