Skip to main content
 首页 » 编程设计

python之Django 模型的额外参数

2025年05月04日22lyhabc

使用 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 

如何做到这一点?我也愿意接受任何其他建议:)

谢谢

请您参考如下方法:

您可以在模型中定义非持久字段。

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"]