Django模型的额外参数
我在使用Django模型时,想要实现这个:
class Foo(models.Model):
name = models.CharField(max_length=50)
#wrapping the save function, including extra tasks
def save(self, *args, **kwargs):
super(Foo, self).save(*args, **kwargs)
if extra_param:
...do task 1
else:
...do task 2
而在创建Foo的时候,我想传入这样的内容:
Foo(name="Bill Gates",extra_param=True).save() # now triggers the task 1
Foo(name="Bill Gates").save() # now triggers the task 2
这该怎么做呢?我也欢迎其他的建议哦 :)
谢谢
1 个回答
9
你可以在你的模型中定义一些不持久化的字段。
class Foo(models.Model):
name = models.CharField(max_length=50)
extra_param = False
def save(self, *args, **kwargs):
...
print self.extra_param
另外,你也可以这样做:
Foo(name="Bill Gates").save(extra_param=True)
def save(self, *args, **kwargs):
...
print kwargs["extra_param"]