معاينة نموذج Django - إضافة المستخدم إلى النموذج قبل حفظ
-
05-07-2019 - |
سؤال
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')
كما ترون ، لقد جربت بعض الطرق ، وقد تم التعليق عليها. من الواضح أن المهمة بسيطة: أضف المستخدم من الطلب إلى النموذج قبل حفظ ، ثم حفظ.
ما هي طريقة العمل المقبولة هنا؟
المحلول
إذا تعذر تعديل المستخدم ، فأنا أقول أنه لا ينبغي أن يتم تضمينه في النموذج في المقام الأول.
اما الطريقة، باستخدام commit
جدال لمنع الكائن الناتج الذي يتم حفظه على الفور يجب أن يعمل (على افتراض FormPreview
الاستخدامات ModelForm
):
obj = form.save(commit=False)
obj.user = request.user
obj.save()
لا تنتمي إلى StackOverflow