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

السؤال

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...