Mohssen A Mohssen نشر 3 يوليو 2022 أرسل تقرير نشر 3 يوليو 2022 لدي نموذج Model بالشكل التالي: class Clients(models.Model): first_name = models.CharField(max_length=199) last_name = models.CharField(max_length=199) كيف يمكنني إضافة حقل آخر تكون قيمته دائمًا عبارة عن مجموع الحقلين Full_name على سبيل المثال؟ بحيث يمكنني إستخدام الخاصية full_name للحصول على اسم العميل الكامل مباشرة اقتباس
1 سامح أشرف نشر 4 يوليو 2022 أرسل تقرير نشر 4 يوليو 2022 يمكنك إضافة تابع method باسم full_name وإضافة المزخرف property@ حتى يمكن إستخدامه كخاصية عادية: class Clients(models.Model): first_name = models.CharField(max_length=199) last_name = models.CharField(max_length=199) @property def full_name(self): return f'{self.first_name} {self.last_name}' كما ترى، يُعيد هذا التابع الاسم الأول والاسم الأخير بسهولة. 1 اقتباس
1 محمد حجي2 نشر 3 يوليو 2022 أرسل تقرير نشر 3 يوليو 2022 الطريقة الأولى و هي إرجاع القيمة في دالة : class Profile(models.Model): user = models.OneToOneField(User, null=True, blank=True, on_delete=models.CASCADE) first_name = models.CharField(max_length=200, blank=True, null=True) last_name = models.CharField(max_length=200, blank=True, null=True) def __str__(self): # الدالة تقوم بإرجع الاسم كامل وسيظهر كامل في لوحة التحكم name = str(self.first_name) if self.last_name: name += ' ' + str(self.last_name) return name أو عنطرق حفظها في حقل جديد: وسيقوم بحفظها بشكل ألى class User( models.Model ): first_name = models.CharField( max_length=64 ) last_name = models.CharField( max_length=64 ) full_name = models.CharField( max_length=128 ) def save( self, *args, **kw ): # بهذه الدالة self.full_name = '{0} {1}'.format( first_name, last_name ) super( User, self ).save( *args, **kw ) 1 اقتباس
1 Haroun Taha نشر 3 يوليو 2022 أرسل تقرير نشر 3 يوليو 2022 إذا كنت تريد حفظ الحقل full_name في قاعدة البيانات وهو يجمع ال first_name مع last_name يُمكنك القيام بذلك فقط بإضافة حقل full_name في الModel Clients عند تعبئة البيانات يكون فارغ ومن ثم في دالة ال ()save عند حفظ الكائن سوف يتم تخزين قيمة ال first_name و last_name داخل ال full_name بشكل تلقائي ليتم ذلك هكذا سوف يكون الكود الخاص بك: class Clients(models.Model): first_name = models.CharField(max_length=199) last_name = models.CharField(max_length=199) full_name = models.CharField(max_length=199, blank=True) def save(self): self.full_name = self.first_name +' '+ self.last_name return super(Clients, self).save() 1 اقتباس
السؤال
Mohssen A Mohssen
لدي نموذج Model بالشكل التالي:
كيف يمكنني إضافة حقل آخر تكون قيمته دائمًا عبارة عن مجموع الحقلين Full_name على سبيل المثال؟ بحيث يمكنني إستخدام الخاصية full_name للحصول على اسم العميل الكامل مباشرة
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.