On Wed, Sep 10, 2008 at 10:38 AM, Brian Rosner <[EMAIL PROTECTED]> wrote:

> On Wed, Sep 10, 2008 at 8:13 AM, shadfc <[EMAIL PROTECTED]> wrote:
> > The problem is that FieldFiles get saved to the storage backend even
> > on a save(commit=False), and (according to a more knowledgeable SeanL-
> > on #django), the FieldFile will only get saved once, the first time
> > through.  So the only way I can accomplish what I want is to do two
> > saves to my backend -- one when the formset is saved with commit=False
> > and then I must call the storage backend's save() directly in order to
> > upload the changes I've made to the mp3 file in memory.
>
> Ouch. In a formset sounds like you could be calling save up to N*2 times.
>
> > I think that the commit=False (or save=False in FieldFile.save() )
> > should not do the save to the storage backend.
>
> Agreed. I have been considering treating FileFields the same as
> many-to-many fields when commit=False in a ModelForm. In the event
> that commit=False a new method is available to perform the file saving
> explicitly. This would help in the event of wanting to name the file
> the same as the primary key for instance.
>
> >
> > Another option might be to pass the save argument along to the storage
> > backend and give the backend designer control over the behavior --
> > perhaps to reserve a filename in a cache with a short ttl.  This would
> > still require that the save() on FieldFile be called more than once
> > though.
>
> We need to avoid calling save on a file backend as much as possible.
> That operation may be very expensive.
>
> Go look for a ticket about this. If there isn't one I would say report
> one. This seems like a reasonable thing to do in general.
>
>
I agree with what you're saying, but wouldn't changing whether the file is
saved when commit=False be a backwards-incompatible change?  Do we need to
preserve current behavior for backwards-compatibility sake and find a way to
enable the desired behavior going forward?

Karen

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@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-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to