django重写save
时间: 2023-08-20 13:05:17 浏览: 86
在 Django 中,重写模型的 `save` 方法可以实现在保存模型实例时自定义一些行为。例如,你可以在保存模型实例之前或之后执行某些操作。
以下是一个重写 `save` 方法的示例:
```python
from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
def save(self, *args, **kwargs):
# 在保存模型实例之前执行某些操作
self.name = self.name.upper()
super(MyModel, self).save(*args, **kwargs)
# 在保存模型实例之后执行某些操作
print('Model instance saved')
```
在上面的示例中,我们通过重写 `save` 方法,在保存模型实例之前将 `name` 属性转换为大写,并在保存之后打印一条消息。
当你在视图中创建 MyModel 实例并保存时,Django 将会自动调用我们重写的 `save` 方法:
```python
from django.shortcuts import render
from .models import MyModel
def my_view(request):
my_model = MyModel(name='John Doe', age=30)
my_model.save()
return render(request, 'my_template.html', {'my_model': my_model})
```
当你执行上面的代码时,Django 将会在保存 `my_model` 实例时自动调用 `save` 方法,并执行我们定义的自定义行为。
阅读全文