синтаксису
with transaction.atomic():
form = ProjectForm(request.POST)
if form.is_valid():
project = form.save()
выводит виводить ValueError at /projects/create/
The view tasks.views.view didn't return an HttpResponse object. It returned None instead.
Если использовать синтаксис
form = ProjectForm(request.POST)
if form.is_valid():
with transaction.atomic():
project = form.save()
тогда никакого эффекта нет – транзакция не откатывается.
В чем проблема и как правильно использовать этот менеджер для того, чтобы происходили транзакции по атомарному принципу?
Хохлам смерть
@Tishka17 @cutwater
!report
Так ошибка связана не с транзакцией…
если говорить о том что не возрващает HttpResponse там рекомендовалось просто переставить atomic manager над формой валидации для корректной работы
Это что за фреймвок вообще? Транзакции не бывают НЕатомарными
Ну ошибка видимо произошла после коммита транзакции
а в чём суть ошибки? как исправить?
У тебя вьюха ничего не вернула похоже
контекст пустой? Это имеется ввиду?
не вернула, потому что откат произошёл и ничего не сохранилось. Тогда получается замкнутый круг - если применить atomic manager, то представление не будет ничего возвращать, а если не применять, в случае невалидности формы обьект всё равно создастся
Не вижу чтобы произошел откат и "ничего не сохранилось". С чего ты это взял?
The view tasks.views.view didn't return an HttpResponse object. It returned None instead. - при таком ответе
Задай вопрос в группе по джанго лучше: https://t.me/pydjango А так, по ошибке у тебя вьюха ничего не возвращает
А толку... Чтобы что-то внятно ответили, вопрос должен быть осмысленный.
https://pastebin.com/hKCQzVzg
1. Включи подсветку синтаксиса 2. Разбей на части, это же пипец портянка
В функции не должно быть больше 3 уровней отступов. Сделаешь - приноси
Не вернула потому, что у тебя в ней нет return
Там где-то есть, но не везде
Если функция проверяет тип метода - оставь в ней только общую часть, остально вынеси в доп функции.
Обсуждают сегодня