On 8 jan, 10:03, James Bennett <ubernost...@gmail.com> wrote:
> Suppose I have a ModelForm and call save(commit=False) to get the > instance so I can do some more work on it. I'm basically saying to > Django "I don't think this object is ready to be saved yet, but I need > the object so I can do stuff to it". If Django goes ahead and does > implicit model validation there and raises an exception, it's just > telling me what I already knew: the object's not ready to be saved. > But now I get to do extra work to catch the exception, and that's bad > and wrong. > > Calling ModelForm.save(commit=False) should simply disable model > validation, period. If I want to validate the instance before saving > it, I'll validate the instance before saving it, but commit=False is > as clear a way as we have of saying "I'm not going to save this yet" > and model validation should respect that. > The problem is that in the idiom the is_valid() call on the modelform tries to full_validate the instance, it is not in the save (commit=False) call. I'm with Simon here: on an incomplete modelform, let's just ignore the errors on excluded fields and only validate the user input at that point. If the developer wants to be sure the model validates after he adds the necessary extra information, it is his job to call validation before saving. Koen
-- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-develop...@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.