Để trả lời câu hỏi theo nghĩa đen, createphươ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 createphươ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.