@tadej

Как добавить в request.POST новую переменную на стороне сервера?

Надо зарегистрировать пользователя на сайте. Но не со страницы регистрации а с другой страницы.
Приходят все данные в POST кроме пароля(нет его там), а валидатор форм ругается: поле пароля обязательное.
Надо добавить в POST поле pass.
Заранее спасибо
  • Вопрос задан
  • 1021 просмотр
Решения вопроса 1
@tplus
В старых версиях можно сделать копию запроса:
- или через request.POST = request.POST.copy();
- или через сборку запроса самостоятельно:
qd = QueryDict('', 'mutable')
qd[key] = value
request.POST = qd

В новых версиях django можно напрямую поправить запрос:
request.POST['new_key'] = 'some value'

Ну и лучше обращать внимание на value - в старых версиях django возможно придётся передавать не value, а [value].
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
Сделай отдельную форму для данного случая

потом
my_form = MyModelForm(request.POST)
my_form.is_valid()
my_model = my_form.save(commit=False)
my_model.pass = 'foo'
my_model.save()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы