Apabila membuat pertanyaan dengan Django Object-Relational Mapper (ORM), mungkin perlu menghantar medan aksara (CharField) kepada integer. Ini boleh dicapai menggunakan fungsi Cast, yang diperkenalkan dalam Django 1.10.
Dalam pertanyaan yang diberikan:
<code class="sql">select student_id from students where student_id like "%97318%" order by CAST(student_id as UNSIGNED) desc;</code>
Medan student_id, sebagai CharField, perlu dihantar ke integer ( INT) untuk menyusun. Untuk melaksanakan operasi ini dalam Django ORM, gunakan sintaks berikut:
<code class="python">from django.db.models import Cast from django.db.models.functions import Cast students.objects.annotate( student_id_int=Cast('student_id', 'INT') # Casting CharField to integer ).order_by('-student_id_int')</code>
Fungsi Cast mengambil dua argumen:
Dalam contoh ini, kami menghantar medan student_id ke INT, dengan berkesan menukarnya kepada integer untuk operasi pengisihan. Ini membolehkan pengisihan keputusan yang tepat menggunakan klausa_urutan.
Atas ialah kandungan terperinci Bagaimana untuk Menghantar CharField kepada Integer dalam Pertanyaan ORM Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!