django - TypeError save() takes at least 2 arguments (1 given) -


i have error type error save() takes @ least 2 arguments (1 given) in django project.

view.py file

class dealsform(modelform):     class meta:         model = product         fields = ['title','description','category','price','sale_price','slug','active','update_defaults','user']         exclude = ('user',) 

model.py file

class product(models.model):     title = models.charfield(max_length=120)     description = models.textfield(null=true, blank=true,max_length=200)     category = models.manytomanyfield(category, null=true, blank=true)     price = models.decimalfield(decimal_places=2, max_digits=100, default=29.99)     sale_price = models.decimalfield(decimal_places=2, max_digits=100,\                                             null=true, blank=true)     slug = models.slugfield(unique=true)     timestamp = models.datetimefield(auto_now_add=true, auto_now=false)     updated = models.datetimefield(auto_now_add=false, auto_now=true)     active = models.booleanfield(default=true)     update_defaults = models.booleanfield(default=false)     user = models.foreignkey(user)         def __unicode__(self):         return self.title      class meta:         unique_together = ('title', 'slug')      def get_price(self):         return self.price      def get_absolute_url(self):         return reverse("single_product", kwargs={"slug": self.slug})      def save(self, request, *args, **kwargs):         obj = super(dealsform, self).save(commit=false, *args, **kwargs)         obj.user = request.user          obj.save()  

can solve problems ?

it seems not passing request object when calling .save(). need pass request object according definition of save().

also, please check .save() function calling super() dealsform class argument in product model class.

edit:

since want set user on product object, can following instead:

def my_view(request):     ...     product = my_deals_form.save(commit=false) # product instance     product.user = request.user # set user on product     product.save() # save object      

you don't need override save() method. call model form instance commit=false argument, set user on product object , save object.


Comments

Popular posts from this blog

c# - Binding a comma separated list to a List<int> in asp.net web api -

Delphi 7 and decode UTF-8 base64 -

html - Is there any way to exclude a single element from the style? (Bootstrap) -