Bei Abfragen mit Django Object-Relational Mapper (ORM) kann es erforderlich sein, ein Zeichenfeld (CharField) umzuwandeln. zu einer ganzen Zahl. Dies kann mit der Cast-Funktion erreicht werden, die in Django 1.10 eingeführt wurde.
In der angegebenen Abfrage:
<code class="sql">select student_id from students where student_id like "%97318%" order by CAST(student_id as UNSIGNED) desc;</code>
Das student_id-Feld muss als CharField in eine Ganzzahl umgewandelt werden ( INT) zum Sortieren. Um diesen Vorgang in Django ORM auszuführen, verwenden Sie die folgende Syntax:
<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>
Die Cast-Funktion benötigt zwei Argumente:
In diesem Beispiel wandeln wir das Feld „student_id“ in INT um und wandeln es für den Sortiervorgang effektiv in eine Ganzzahl um. Dies ermöglicht eine genaue Sortierung der Ergebnisse mithilfe der order_by-Klausel.
Das obige ist der detaillierte Inhalt vonWie wandelt man ein CharField in Django ORM-Abfragen in eine Ganzzahl um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!