البرمجة

كيفية تعيين قيمة افتراضية مشتركة لحقلين في نموذج Django

To set the default value of my_field2 to the default value of my_field1 without repeating the call to datetime.utcnow(), you can override the save() method of your MyModel class. Here’s how you can do it:

python
from django.db import models from datetime import datetime class MyModel(models.Model): my_field1 = models.DateTimeField(default=datetime.utcnow, editable=False) my_field2 = models.DateTimeField(editable=False) def save(self, *args, **kwargs): if not self.pk: # If the object is being created for the first time self.my_field2 = self.my_field1 super(MyModel, self).save(*args, **kwargs)

This way, when a new MyModel instance is created and saved, my_field2 will automatically be set to the same value as my_field1.

المزيد من المعلومات

الإجراء الذي تم تنفيذه في الحل السابق يعمل على تحديد قيمة افتراضية لحقل my_field2 بناءً على قيمة افتراضية محددة لحقل my_field1، دون الحاجة إلى تكرار استدعاء الدالة datetime.utcnow().

قمنا بتجاهل تعديل قيمة my_field2 إذا كانت السجل موجودًا بالفعل في قاعدة البيانات، حيث نفهم أنه في حالة تعديل سجل موجود فقط يجب تحديث my_field1 وليس my_field2.

كما قمنا بتمرير الوسائط *args و **kwargs إلى الدالة save() الأصلية للنموذج باستخدام super(MyModel, self).save(*args, **kwargs)، وذلك لضمان عمل الحفظ الافتراضي للنموذج بشكل صحيح ودون مشاكل.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر