Untitled
plain_text
a month ago
2.4 kB
1
Indexable
Never
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)