431
new_entry.html
{% extends "learning_logs/base.html" %}
{% block content %}
❶
{{ topic }}
Add a new entry:
❷
{% endblock content %}
В начале страницы выводится тема
, чтобы пользователь мог видеть, в какую
тему добавляется новая запись. Тема также служит ссылкой на главную страницу
этой темы.
Аргумент
action
формы включает значение
topic_id
из URL, чтобы функция пред-
ставления могла связать новую запись с правильной темой
. В остальном этот
шаблон почти не отличается от
new_topic .html
.
Создание ссылки на страницу new_entry
Затем необходимо создать ссылку на страницу
new_entry
на каждой странице темы:
topic.html
{% extends "learning_logs/base.html" %}
{% block content %}
Topic: {{ topic }}
Entries:
add new entry
{% endblock content %}
Ссылка добавляется перед выводом записей, потому что добавление новой запи-
си является самым частым действием на этой странице. На рис. 19.2 изображена
страница
new_entry
. Теперь пользователь может добавить сколько угодно новых
тем и новых записей по каждой теме. Опробуйте страницу
new_entry
, добавив не-
сколько записей для каждой из созданных вами тем.
432
Глава 19 • Учетные записи пользователей
Рис. 19.2.
Страница new_entry
Редактирование записей
А теперь мы создадим страницу, на которой пользователи смогут редактировать
ранее добавленные записи.
URL-адрес для edit_entry
В URL-адресе страницы должен передаваться идентификатор редактируемой
записи. В файл
learning_logs/urls .py
для этого вносятся следующие изменения:
urls.py
...
urlpatterns = [
...
# Страница для редактирования записи
path('edit_entry//', views.edit_entry, name='edit_entry'),
]
Идентификатор, переданный в URL (например,
http://localhost:8000/edit_entry/1/
),
сохраняется в параметре
entry_id
. Схема URL отправляет запросы, соответству-
ющие этому формату, функции представления
edit_entry()
.
Функция представления edit_entry()
Когда страница
edit_entry
получает запрос GET,
edit_entry()
возвращает форму
для редактирования записи. При получении запроса POST с отредактированной
записью страница сохраняет измененный текст в базе данных:
Редактирование данных
Достарыңызбен бөлісу: |