首页 > 解决方案 > Django:如何向模型类添加“设置和保存”方法?

问题描述

如何set()为 Django 的 Model 类创建方法,该方法将为指定字段设置值然后保存对象,因此可以这样调用:

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

而不是这个:

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

标签: pythondjangodjango-models

解决方案


这是set()通过代理类实现的方法:

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()

在这里通过抽象类:

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)
  ...

推荐阅读