शाब्दिक रूप से प्रश्न का उत्तर देने के लिए, create
मॉडल के प्रबंधक में विधि Django में नई वस्तुओं को बनाने का एक मानक तरीका है। ओवरराइड करने के लिए, कुछ ऐसा करें
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()
इस उदाहरण में, मैं create
वास्तव में निर्मित होने से पहले कुछ अतिरिक्त प्रसंस्करण करने के लिए प्रबंधक की विधि विधि को ओवरराइड कर रहा हूं ।
नोट: कोड की तरह
my_new_instance = MyModel.objects.create(my_field='my_field value')
इस संशोधित create
विधि को क्रियान्वित करेगा , लेकिन कोड की तरह
my_new_unsaved_instance = MyModel(my_field='my_field value')
नहीं होगा।