Để trả lời câu hỏi theo nghĩa đen, create
phương thức trong trình quản lý mô hình là một cách tiêu chuẩn để tạo các đối tượng mới trong Django. Để ghi đè, hãy làm điều gì đó như
from django.db import models
class MyModelManager(models.Manager):
def create(self, **obj_data):
obj_data['my_field'] = my_computed_value(obj_data['my_other_field'])
return super().create(**obj_data)
class MyModel(models.model):
my_field = models.CharField(max_length=250)
my_other_field = models.CharField(max_length=250)
objects = MyModelManager()
Trong ví dụ này, tôi đang ghi đè phương thức của Trình quản lý create
để thực hiện một số xử lý bổ sung trước khi phiên bản thực sự được tạo.
LƯU Ý: Mã như
my_new_instance = MyModel.objects.create(my_field='my_field value')
sẽ thực thi create
phương thức đã sửa đổi này, nhưng mã như
my_new_unsaved_instance = MyModel(my_field='my_field value')
sẽ không.