Beshoy Ehab3 نشر 16 سبتمبر 2021 أرسل تقرير نشر 16 سبتمبر 2021 لماذا يظهر هذا الخطأ TypeError: on_delete must be callable مع العلم الكود الذي يظهر منه الخطأ هو user = models.ForeignKey(User, on_delete='None') إصدار django عندي هو 3.2 1 اقتباس
0 Hassan Hedr نشر 16 سبتمبر 2021 أرسل تقرير نشر 16 سبتمبر 2021 المعامل 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 2 اقتباس
0 Ahmed Sharshar نشر 16 سبتمبر 2021 أرسل تقرير نشر 16 سبتمبر 2021 الخطأ فقط أنك تقوم باستدعاء دالة يجب ادخال بها المعامل 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) 1 اقتباس
السؤال
Beshoy Ehab3
لماذا يظهر هذا الخطأ
TypeError: on_delete must be callable
مع العلم الكود الذي يظهر منه الخطأ هو
user = models.ForeignKey(User, on_delete='None')
إصدار django عندي هو 3.2
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.