اذهب إلى المحتوى
  • 0

خطأ on_delete must be callable في django python

Beshoy Ehab3

السؤال

Recommended Posts

  • 0

المعامل on_delete يجب أن يكون قابل للاستدعاء أي تابع

أنت تحاول تمرير None ولكن محاطة بعلامة الاقتباس " ' " أي يتم معاملتها كنوع نص يمكنك تغييرها الى التالي 

user = models.ForeignKey(User, on_delete=None)

لكن اذا كنت تقصد ب None أن لا يتم اتخاذ اجراء عند حذف البيانات المرتبطة يمكنك تمرير التالي

user = models.ForeignKey(User, on_delete=models.DO_NOTHING)

حيث قيم on_delete يمكن أن تكون التالي

models.CASCADE
models.SET_NULL
models.DO_NOTHING
models.PROTECT

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

الخطأ فقط أنك تقوم باستدعاء دالة يجب ادخال بها المعامل delete لكنك لم تقم بادخالها، أنظر المثال التالي للتوضيح أولا:

class SomeModel(models.Model):
    field=models.ForeignKey(default=1, on_delete='CASCADE', to='main.Category')

وهذا استخدام خاطئ ينتج عنه نفس المشكلة التى تظهر لك، لذلك حلها كان كالتالي:

class SomeModel(models.Model):

    field=models.ForeignKey(default=1, on_delete=models.CASCADE, to='main.Category')

لذلك فان حل المشكلة خاصتك بنفس الطريقة بسيطة، فقط مرر الكائن model  مع اختيار DO_NOTHING عوضا عن None  كالتالي:

user = models.ForeignKey(User, on_delete=models.DO_NOTHING)

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...