Вставка значений в форму - PullRequest
       11

Вставка значений в форму

0 голосов
/ 01 сентября 2009

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

Когда я пытаюсь сохранить этот набор форм, я получаю сообщение об ошибке, в котором user_id не может быть нулевым. Мне нужно как-то добавить request.user к каждой форме, прежде чем я сохраню этот набор форм в представлении. Как я могу это сделать? Я знаю, как добавить значение в один экземпляр модели, но не могу понять, как это сделать с помощью набора форм.

Ответы [ 2 ]

1 голос
/ 01 сентября 2009

При сохранении формы набора запомнить:

 if formset.is_valid():
     instances = formset.save(commit=False)
     for instance in instances:
         instance.user_id = request.user.id
         instance.save()

Тебе больше ничего не нужно. Кстати, я не понимаю, почему сохранить идентификатор пользователя, а не объект пользователя?

1 голос
/ 01 сентября 2009

Если вы не передаете request.user в форму, нет прямого способа получить его в методе сохранения формы.

Однако есть способ, если вы хотите, чтобы пользователь был доступен непосредственно при сохранении формы, вне контекста. Выезд, http://code.djangoproject.com/wiki/CookBookThreadlocalsAndUser.

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