﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
14940	New generic class view CreateView  execute form.save() with no arguments	Mario César	nobody	"Using the new django class views it's needed to override methods to extends functionality, this of course is awesome. django.views.generic.!CreateView has been specially useful for me.

For my purpose I had a Model for Projects and a Form for this model, and I override the save method. However, there was no possibility to use the save method of my form, as !CreateView extends from ModelFormMixin and this execute the method form.save() without arguments

I made a simple patch, to made this easy as it was when using old generic views.

Here it's the code working with my tiny patch.

{{{
class ProjectForm(ModelForm):
    
    class Meta:
        model = Project
        exclude = ('owner', 'members', 'followers', 'hosted', 'last_commit',
                    'last_release', 'related_projects')
        widgets = {
            'description': Textarea(attrs={'cols': 40, 'rows': 20}),
        }

    def save(self, owner, commit=True, *args, **kwargs):
        project = super(ProjectForm,self).save(commit=False,*args, **kwargs)
        project.owner = owner
        if commit:
            project.save()
        return project

class ProjectCreateView(CreateView):
    model = Project
    form_class = ProjectForm

    def form_valid(self, form):
        return super(ProjectCreateView, self).form_valid(form, owner=self.request.user)
}}}
"		closed	Generic views	1.2		wontfix			Unreviewed	1	0	0	0	0	0
