вставка формы в сеанс вызывает ошибку picklinger - django - PullRequest
1 голос
/ 29 января 2010

При добавлении формы в сеанс я получаю исключение:

PicklingError: Can't pickle <class 'django.utils.functional.__proxy__'>: attribute lookup django.utils.functional.__proxy__ failed

Форма включает в себя несколько простых полей и имеет некоторый javascript, присоединенный к виджету. Возможно, формы Django вообще не могут быть засолены, но исключение, похоже, указывает на ленивый перевод в юникоде.

Для дальнейшей проверки я также попытался вставить в сеанс только ошибки формы (errordict) и получил ту же ошибку.

Я ценю помощь здесь, спасибо заранее.

РЕДАКТИРОВАТЬ: Вот почему я вставляю форму в сеанс:

У меня есть приложение, которое имеет форму. Эта форма отображается с помощью тега шаблона в другом приложении. При публикации, если форма действительна, проблем нет, я делаю вещи и перенаправляю на «следующий». Однако, если он недействителен, я хочу вернуться на страницу публикации, чтобы показать ошибки. Напомним, что приложение комментариев в этом случае перенаправляет на промежуточную страницу «эй, исправьте ошибки». Я пытаюсь избежать этого и, следовательно, перенаправить обратно на страницу публикации с формой и ошибками в сеансе, которые будет отображать тег шаблона.

Ответы [ 3 ]

2 голосов
/ 29 января 2010
  • Вам не нужно мариновать форму. Если вы хотите сохранить значение формы в сеансе, сохраните form.cleaned_data

  • Исходя из того, что вы сказали, вы делаете, вы можете оформить заказ Мастер форм django . Он выбирает данные и сохраняет их в следующих формах как скрытые значения, после завершения вы получаете все поля форм.

0 голосов
/ 16 августа 2012

если проверка не пройдена, поместите request.POST в свои сеансы и перенаправьте пользователя обратно, как обычно. ваше другое представление просто должно собрать это и инициализировать формы с неверными данными, и ошибки, обнаруженные в вашем представлении POST, вновь появятся в перенаправленном представлении.

0 голосов
/ 29 января 2010

Я не знаю, насколько это будет полезно, но объяснение этого типа ошибки в сериализаторе JSON

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...