Skip to content

Commit

Permalink
[ru] update Django generic views tutorial (Closes #3698) (#13540)
Browse files Browse the repository at this point in the history
Closes #3698
  • Loading branch information
yanaklose authored Nov 17, 2023
1 parent 06648d3 commit f5ad8f0
Showing 1 changed file with 5 additions and 9 deletions.
14 changes: 5 additions & 9 deletions files/ru/learn/server-side/django/generic_views/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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-запросов.

Expand Down

0 comments on commit f5ad8f0

Please sign in to comment.