Reputation:
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
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