Scratch this, I just noticed that the dev docs explain a lot more than the 
1.3/1.4 docs do.  Perhaps having this documentation in 1.3/1.4 as well, or 
at least mentioning there that the dev docs contain much more information.

On Sunday, 11 November 2012 11:31:41 UTC-6, Kevin Veroneau wrote:
>
> Hello Everyone,
>
>   I have been using class-based views for sometime now, and I am running 
> into an issue while subclassing CreateView, and think that this type of 
> thing could be placed into Django somehow to make it easier to implement.
>
>   Most multi-user websites connect models to a user by some means, so the 
> posts they make or articles they add list them as the owner/poster of it.  
> Assigning the object to the user when using class-based views at the moment 
> is annoying to say the least:
>
>     def form_valid(self, form):
>         self.object = form.save(commit=False)
>         self.object.user = self.request.user
>         self.object.save()
>         return super(ModelFormMixin, self).form_valid(form)
>
>   This is what I currently do, and it looks messy and unorganized.  I 
> would like a way to easily assign additional data to the self.object 
> without going through all this.  You may notice that I am calling super() 
> on ModelFormMixin, when this is a CreateView, well the super() of 
> CreateView will attempt to re-create the self.object from a form.save(), 
> and since I already created the object here, with no easy way to just pass 
> self.object...  Anyways, you get the idea.
>
>   Perhaps a new overridable method that allows us to do something with an 
> uncommitted object before it is saved.  Here is a new form_valid I propose:
>
> class ModelFormMixin(...):
>     def not_sure_of_naming(self):
>         pass
>     def form_valid(self, form):
>         self.object = form.save(commit=False)
>         self.not_sure_of_naming()
>         self.object.save()
>         return super(ModelFormMixin, self).form_valid(form)
>
>   This will allow us developers using class-based views to easily perform 
> tasks on a self.object before it is finally saved back into the database.  
> The above implementation is just an example of what I would love to see in 
> a future version of class-based views.
>
> Best Regards,
>   Kevin Veroneau
>   Python Diary
>   http://www.pythondiary.com/
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-developers/-/BEMYcZT9jK0J.
To post to this group, send email to [email protected].
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