Hi ALL! If I use ModelForm + FormPreview + form.save() call in done() it never update objects if PK is AutoField, but always create them, why it can be so? FormPreview doesn't store PK value enywhere (ex.: to use in form.instance.pk to determine that it is an update not create) ?
I redefine some FormPreview default methods preview_get() to pass form instance to the template, post_post() to pass form instance to the done() method, not just cleaned_data. if preview: from django.contrib.formtools.preview import FormPreview, AUTO_ID class ModelFormPreviewClass(FormPreview): def preview_get(self, request): """Displays the form""" f = self.form(auto_id=AUTO_ID, instance=object) return render_to_response(self.form_template, {'form': f, 'stage_field': self. unused_name('stage'), 'state': self.state}, context_instance=RequestContext(request)) def post_post(self, request): """Validates the POST data. If valid, calls done(). Else, redisplays form.""" f = self.form(request.POST, auto_id=AUTO_ID) if f.is_valid(): if self.security_hash(request, f) != request.POST.get(self.unused_name('hash')): return self.failed_hash(request) # Security hash failed. return self.done(request, f) else: return render_to_response(self.form_template, {'form': f, 'stage_field': self. unused_name('stage'), 'state': self.state}, context_instance=RequestContext(request)) def done(self, request, form): new_object = form.save() response = model_post_save(new_object) return response return ModelFormPreviewClass(model_form)(request) if request.method == 'POST': new_data = request.POST.copy() form = model_form(new_data, instance=object) if form.is_valid(): new_object = form.save() response = model_post_save(new_object) return response else: form = model_form(instance=object) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---