django - ModelForm User Mixin -


i've got models user field.

for purpose i'd create form mixin add self.user instance (which provided form in views). possible ?

here's example

class userformmixin(object):     """removes user instance kwargs , adding object"""     def __init__(self, *args, **kwargs):         super(userformmixin, self).__init__(*args, **kwargs)         self.user = kwargs.pop('user')      def save(self, **kwargs):         obj = super(userformmixin, self).save(commit=false)         obj.user = self.user         if kwargs['commit']:             return obj.save()         else:             return obj 

what i'd achieve:

class someformwithuserfield(userformmixin, modelform):     class meta:         model = somemodelwithuserfield         fields = ['fields without user']      def save(self, **kwargs):         data = super(someformwithuserfield, sefl).save(commit=false)         #data user prepended         #do other stuff data         if kwargs['commit']:             return data.save()         else             return data  class someotherformwithuser(userformmixin, modelform):     class meta:         model = someothermodel         fields = ['some fields without user']  # no need save here.. standard model form user prepended on save() 

the problem userformmixin doesn't know model instance? or wrong here? getting problems.. 'commit' kwargs key error.. or object not saved..

you're close, have logic errors. first, in order override modelform methods, mixin needs inherit modelform.

class userformmixin(forms.modelform):     ... 

then, forms inherit inherit userformmixin, not modelform.

class someotherformwithuser(userformmixin):     ... 

second, __init__ method override incorrect. need accept , args , kwargs passed it.

def __init__(self, *args, **kwargs):     ... 

finally, don't override save method again, in subclass. guess won't technically hurt anything, what's point of inheritance if you're going repeat code, anyways? if user not nullable, can add if block check if self.user not none before adding model. of course, if user not nullable, model won't save without self.user anyways.


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -