user10740629
user10740629

Reputation:

Django: how to add "set & save" method to Model class?

How to make set() method for Django's Model class that's will set values to specified fields and then save object, so it can be called like this:

object.set(field_1 = 0, field_2 = 1)

Instead of this:

object.field_1 = 0
object.field_2 = 1
object.save()

Upvotes: 0

Views: 1609

Answers (1)

user10740629
user10740629

Reputation:

Here is implementation of set() method via proxy class:

class foo(models.Model)
  ...

class foo_proxy(foo)
  class Meta:
    proxy = True

  def set(self, **kwargs):
    for arg, val in kwargs.items():
      setattr(self, arg, val)
    self.save()

And here via abstract class:

class model(models.Model)
  class Meta:
    abstract = True

  def set(self, **kwargs):
    for arg, val in kwargs.items():
      setattr(self, arg, val)
    self.save()

class foo(model)
  ...

Upvotes: 1

Related Questions