تحويل الحرف إلى عدد صحيح في استعلامات Django ORM
في Django ORM، تقوم طريقة التصفية () تلقائيًا بتحويل حقول الأحرف إلى أعداد صحيحة أثناء الاستعلام، مما يجعل من السهل تصفية حقول الأحرف التي تمثل القيم الرقمية. ومع ذلك، إذا كنت بحاجة إلى تحويل حقل حرف بشكل صريح إلى عدد صحيح للطلب أو لأغراض أخرى، فإن Django يوفر عدة خيارات.
إحدى الطرق هي استخدام طريقة __cast()، والتي تسمح لك بإرسال حقل إلى نوع بيانات محدد. على سبيل المثال:
students.objects.filter(student_id__contains="97318").order_by('-student_id__cast(IntegerField)')
بديل آخر هو استخدام التعليق التوضيحي () طريقة لإنشاء حقل جديد يتم إرساله إلى نوع البيانات المطلوب. يمكن أن يكون هذا مفيدًا إذا كنت بحاجة إلى استخدام الحقل المُرسل في الاستعلامات أو الحسابات اللاحقة:
from django.db.models import IntegerField, Cast
students = students.objects.annotate(
student_id_int=Cast('student_id', IntegerField())
)
students.order_by('-student_id_int')
أخيرًا، بالنسبة لعمليات الإرسال الأكثر تعقيدًا، يمكنك استخدام وظائف RawSQL() أو Extra() لتنفيذ استعلامات SQL الأولية التي تتضمن الإرسال الضروري. ومع ذلك، لا يُنصح عمومًا بهذا الأسلوب للاستعلامات المستندة إلى ORM، لأنه قد يؤدي إلى مشكلات في الأداء وثغرات أمنية.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3