From f5ad8f0af797072cf8a0b1df8f11ec622b4a7cb2 Mon Sep 17 00:00:00 2001 From: Yana Klose-Ivanova <75987641+yanaklose@users.noreply.github.com> Date: Fri, 17 Nov 2023 04:26:46 -0500 Subject: [PATCH] [ru] update Django generic views tutorial (Closes #3698) (#13540) Closes #3698 --- .../server-side/django/generic_views/index.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/files/ru/learn/server-side/django/generic_views/index.md b/files/ru/learn/server-side/django/generic_views/index.md index 50fa6452eadfc5..0199bcc8d82a04 100644 --- a/files/ru/learn/server-side/django/generic_views/index.md +++ b/files/ru/learn/server-side/django/generic_views/index.md @@ -26,22 +26,18 @@ slug: Learn/Server-side/Django/Generic_views ### Преобразования URL-адресов -Откройте файл **/catalog/urls.py** и скопируйте в него строки, выделенные жирным внизу. Практически также как и для главной страницы сайта, данная функция `url()` определяет регулярное выражение (**r'^books/$'**), связывающее URL-адрес с функцией отображения (`views.BookListView.as_view()` ), которая будет вызвана, если URL-адрес будет соответствовать паттерну РВ. Кроме того, определяется имя для данного сопоставления. +Откройте файл **/catalog/urls.py** и скопируйте в него путь до `'books/'`, как в примере ниже. Практически так же, как и для главной страницы сайта, функция `path()` определяет регулярное выражение, по которому проверяется адрес (**'books/'**), функцию отображения, которая вызовется при совпадении адресов (`views.BookListView.as_view()`), и название для этого конкретного преобразования. ```python -from django.urls import path -from . import views -from django.conf.urls import url - urlpatterns = [ - url(r'^$', views.index, name='index'), - url(r'^books/$', views.BookListView.as_view(), name='books'), + path('', views.index, name='index'), + path('books/', views.BookListView.as_view(), name='books'), ] ``` -Данный паттерн РВ сопоставления URL-адреса полностью соответствует строке `books/` (`^` является маркером начала строки, а `$` - маркер конца строки). Как было отмечено в предыдущей части руководства, URL-адрес уже должен содержать `/catalog`, таким образом полный адрес, на самом деле, имеет вид : `/catalog/books/`. +Как было отмечено в предыдущей части руководства, URL-адрес уже должен содержать `/catalog`, и таким образом полный адрес, на самом деле, имеет вид `/catalog/books/`. -Функция отображения имеет другой формат, чем ранее — это связано с тем, что данное отображение реализуется через класс. Мы будем наследоваться от существующей общей функции из **view**, которая уже делает большую часть того, что мы хотим, что нам и нужно, вместо того, чтобы писать свою собственную функцию во **view** с нуля. +Функция отображения имеет другой формат, чем прежде — это связано с тем, что данное отображение реализуется через класс. Мы будем наследоваться от существующей общей функции из **view**, которая уже делает большую часть того, что мы хотим, вместо того, чтобы писать свою собственную функцию во **view** с нуля. При использовании обобщённых классов отображения в Django мы получаем доступ к соответствующей функции отображения при помощи вызова метода `as_view()`. Таким образом выполняется вся работа по созданию экземпляра класса и гарантируется вызов правильных методов для входящих HTTP-запросов.