Mohssen A Mohssen نشر 19 أبريل 2022 أرسل تقرير نشر 19 أبريل 2022 قمت بعمل تابه __init__ في أحد النماذج model الخاصة بي بالشكل التالي: def __init__(self, title, content, description): models.Model.__init__(self) self.title = title self.content = content self.description = description أقوم بعمل هذا التابع حتى يمكنني عمل كائنات جديدة من خلال الكود التالي: p = Post('my post title','some content', 'summary of the post') كان هذا النموذج يعمل بشكل سليم عندما أقوم بحفظ كائن جديد إلى قاعدة البيانات، ولكن تحدث المشكلة عندما أقوم بإستخدام الكود التالي: Post.objects.all() حيث لا يتم إرجاع أي شيء من قاعدة البيانات، ويجب أن أقوم بإزالة التابع __init__ لكي يعمل السطر السابق. كيف أحل هذه المشكلة في جانغو Django؟ 1 اقتباس
1 مسعود زاهي نشر 20 أبريل 2022 أرسل تقرير نشر 20 أبريل 2022 توثيق جانغو لا ينصح بتغيير التابع __init__ في النماذج (Models) ﻷنه قد يؤدي إلى خلل في حفظ البيانات وإنما ينصح ب: إنشاء دالة ثابتة (classmethod) في النموذج: class Post(models.Model): .... @classmethod def create(cls, title, content, description): post = cls(title=title, content=content, description=description) return post ويتم استدعاؤها على الشكل التالي: p = Post.create('my post title','some content', 'summary of the post') إضافة تابع إلى مدير النموذج (Manager) - عادةً هذا ما ينصح به- : #نقوم بإنشاء مدير مخصص class PostManager(models.Manager): def create_post(self, title, content, description): post = self.create(title=title, content=content, description=description) return post class Post(models.Model): ... #تعيين مدير النموذج objects = PostManager() ويتم استدعاء هذا التابع على الشكل التالي: p = Post.objects.create_post('my post title','some content', 'summary of the post') 1 اقتباس
السؤال
Mohssen A Mohssen
قمت بعمل تابه __init__ في أحد النماذج model الخاصة بي بالشكل التالي:
أقوم بعمل هذا التابع حتى يمكنني عمل كائنات جديدة من خلال الكود التالي:
كان هذا النموذج يعمل بشكل سليم عندما أقوم بحفظ كائن جديد إلى قاعدة البيانات، ولكن تحدث المشكلة عندما أقوم بإستخدام الكود التالي:
حيث لا يتم إرجاع أي شيء من قاعدة البيانات، ويجب أن أقوم بإزالة التابع __init__ لكي يعمل السطر السابق.
كيف أحل هذه المشكلة في جانغو Django؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.