これはこの質問の続きです。
問題は、コードが新しいオブジェクトの作成を許可していないことです。thing = get_object_or_404(Thing, pk=id)
class CreateWizard(SessionWizardView):
file_storage = FileSystemStorage(location=os.path.join(settings.MEDIA_ROOT))
def done(self, form_list, **kwargs):
id = form_list[0].cleaned_data['id']
thing = get_object_or_404(Thing, pk=id)
if thing.user != self.request.user:
raise HttpResponseForbidden()
else:
instance = Thing()
for form in form_list:
for field, value in form.cleaned_data.iteritems():
setattr(instance, field, value)
instance.user = self.request.user
instance.save()
return render_to_response('wizard-done.html', {
'form_data': [form.cleaned_data for form in form_list],})
get_or_create
この機能を使用するにはどうすればよいですか? または、この関数内で新しいオブジェクトを作成する別のより良い方法はありますか? アイデアをありがとう!