Django-rest-framework: يجب أن يعطي الإنشاء المزيد من الاستثناءات المفيدة عند حدوث TypeError

تم إنشاؤها على ١٥ أكتوبر ٢٠١٥  ·  3تعليقات  ·  مصدر: encode/django-rest-framework

هذه هي لعنة حياتي. يحتاج السطر 845 في المتسلسلات . py إلى التغيير ليكون أكثر فائدة عند حدوث خطأ من النوع TypeError.

إذا كانت لديك طرق حفظ () مخصصة وحدث خطأ ما ، فإن DRF يمنحك فقط رسالة الاستثناء ، والتي قد تكون مفيدة مثل "X غير قابل للتكرار". هل يمكن أن يتضمن DRF تتبع الخطأ الأصلي من النوع TypeError أو أن يفعل أي شيء مفيد أكثر قليلاً من إخراج رسالة افتراضية وابتلاع الاستثناء الأصلي؟

التعليق الأكثر فائدة

أهلا،
أود حقًا إعادة فتح هذه المشكلة. هذا حقًا هو أسوأ جزء في استخدام DRF في أي تطبيق غير تافه. هذا هو الاستثناء الذي أحصل عليه:

TypeError: Got a `TypeError` when calling `Document.objects.create()`. This may be because you have a writable field on the serializer class that is not a valid argument to `Document.objects.create()`. You may need to make the field read-only, or override the DocumentSerializer.create() method to handle this correctly.
Original exception text was: 'SafeText' object is not callable.

أجعلك تحاول أن تكون مفيدًا من خلال عرض هذا النص ، لكنك حقًا تبتلع الاستثناء بالكامل مما يجعل تصحيح الأخطاء والتخلص من معظم المعلومات المفيدة بالفعل أكثر صعوبة. من فضلك ضع في اعتبارك MR.

ال 3 كومينتر

سأكون سعيدًا بالنظر في طلبات السحب ، ولكن بخلاف ذلك لا تتجاهل ما يجب أن نفعله بشكل مختلف هنا. نقوم بتضمين نص الاستثناء الأصلي ، لكننا نضيف القليل من السياق الإضافي لشرح سبب رفعه. لا توجد فكرة عما إذا كان بإمكاننا (أو نريد) الحفاظ على التتبع الأصلي.

لقد قمت بعمل علاقات عامة ، وأعتقد أنه يجب عليك عرض التتبع الأصلي في الرسالة. لأكون صادقًا ، أعتقد أنه لا يجب عليك فهم الاستثناء على الإطلاق ، لكن أعتقد أن الرسالة المعدلة قد تكون مفيدة للمستخدمين الجدد. ومع ذلك ، فهو يبتلع معلومات خطأ مهمة بدون سبب حقيقي يجب تغييره.

أهلا،
أود حقًا إعادة فتح هذه المشكلة. هذا حقًا هو أسوأ جزء في استخدام DRF في أي تطبيق غير تافه. هذا هو الاستثناء الذي أحصل عليه:

TypeError: Got a `TypeError` when calling `Document.objects.create()`. This may be because you have a writable field on the serializer class that is not a valid argument to `Document.objects.create()`. You may need to make the field read-only, or override the DocumentSerializer.create() method to handle this correctly.
Original exception text was: 'SafeText' object is not callable.

أجعلك تحاول أن تكون مفيدًا من خلال عرض هذا النص ، لكنك حقًا تبتلع الاستثناء بالكامل مما يجعل تصحيح الأخطاء والتخلص من معظم المعلومات المفيدة بالفعل أكثر صعوبة. من فضلك ضع في اعتبارك MR.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات