Untitled
unknown
plain_text
2 years ago
2.4 kB
7
Indexable
def delete_birthday(request, pk):
# Получаем объект модели или выбрасываем 404 ошибку.
instance = get_object_or_404(Birthday, pk=pk)
# В форму передаём только объект модели;
# передавать в форму параметры запроса не нужно.
form = BirthdayForm(instance=instance)
context = {'form': form}
# Если был получен POST-запрос...
if request.method == 'POST':
# ...удаляем объект:
instance.delete()
# ...и переадресовываем пользователя на страницу со списком записей.
return redirect('birthday:list')
# Если был получен GET-запрос — отображаем форму.
return render(request, 'birthday/birthday.html', context)
# Добавим опциональный параметр pk.
def birthday(request, pk=None):
# Если в запросе указан pk (если получен запрос на редактирование объекта):
if pk is not None:
# Получаем объект модели или выбрасываем 404 ошибку.
instance = get_object_or_404(Birthday, pk=pk)
# Если в запросе не указан pk
# (если получен запрос к странице создания записи):
else:
# Связывать форму с объектом не нужно, установим значение None.
instance = None
# Передаём в форму либо данные из запроса, либо None.
# В случае редактирования прикрепляем объект модели.
form = BirthdayForm(request.POST or None,
files=request.FILES or None,
instance=instance)
# Остальной код без изменений.
context = {'form': form}
# Сохраняем данные, полученные из формы, и отправляем ответ:
if form.is_valid():
form.save()
birthday_countdown = calculate_birthday_countdown(
form.cleaned_data['birthday']
)
context.update({'birthday_countdown': birthday_countdown})
return render(request, 'birthday/birthday.html', context)
Editor is loading...