"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تحويل حقول الأحرف إلى أعداد صحيحة في استعلامات Django ORM؟

كيفية تحويل حقول الأحرف إلى أعداد صحيحة في استعلامات Django ORM؟

تم النشر بتاريخ 2024-11-13
تصفح:693

How to Cast Character Fields to Integers in Django ORM Queries?

تحويل الحرف إلى عدد صحيح في استعلامات 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