452
Глава 19 • Учетные записи пользователей
# Отправлены данные POST; обработать данные.
form = TopicForm(data=request.POST)
if form.is_valid():
❶
new_topic = form.save(commit=False)
❷
new_topic.owner = request.user
❸
new_topic.save()
return redirect('learning_logs:topics')
# Вывести пустую или недействительную форму.
context = {'form': form}
return render(request, 'learning_logs/new_topic.html', context)
...
При первом вызове
form.save()
передается аргумент
commit=False
, потому что
новая тема должна быть изменена перед сохранением в базе данных
. Атрибуту
owner
новой темы присваивается текущий пользователь
. Наконец, мы вызываем
save()
для только что определенного экземпляра темы
. Теперь тема содержит
все обязательные данные и ее сохранение пройдет успешно.
Вы сможете добавить сколько угодно новых тем для любого количества разных
пользователей. Каждому пользователю будут доступны только его собственные
данные, какие бы операции он ни пытался выполнять — просмотр данных, ввод
новых или изменение существующих данных.
Достарыңызбен бөлісу: