Django Form Preview-добавление пользователя в форму перед сохранением
class RegistrationFormPreview(FormPreview):
preview_template = 'workshops/workshop_register_preview.html'
form_template = 'workshops/workshop_register_form.html'
def done(self, request, cleaned_data):
# Do something with the cleaned_data, then redirect
# to a "success" page.
# data = request.POST.copy()
# data['user_id'] = u'%s' % (request.user.id)
# cleaned_data['user'] = u'%s' % (request.user.id)
#f = self.form(cleaned_data)
#f = self.form(data)
#f.user = request.user
f = self.form(request.POST)
f.save()
pdb.set_trace()
return HttpResponseRedirect('/register/success')
Как вы можете видеть, я пробовал несколько способов, и это было прокомментировано. Задача, по-видимому, проста: Добавить пользователя из запроса в форму перед сохранением, а затем сохранить.
каков принятый, рабочий метод здесь?
1 ответов
если пользователь не может быть изменен, я бы сказал, что он даже не должен быть включен в форму в первую очередь.
в любом случае С помощью commit
аргумент чтобы предотвратить сохранение результирующего объекта немедленно должно работать (при условии FormPreview
использует ModelForm
):
obj = form.save(commit=False)
obj.user = request.user
obj.save()