Char-Feld in Django ORM in Ganzzahl umwandeln
Bei Abfragen mit Django ORM kann es vorkommen, dass Sie ein Zeichenfeld umwandeln müssen zu einer ganzen Zahl. Dies kann auftreten, wenn das Feld als CharField gespeichert ist, Sie aber Berechnungen oder Vergleiche mit ganzzahligen Werten durchführen möchten.
Warum ist CAST nicht verfügbar?
In früheren Versionen von Für solche Szenarien waren Django, reine SQL-Abfragen oder Datenbankfunktionen erforderlich. Mit der Einführung der Cast-Funktion in Django 1.10 können Sie diese Umwandlung jedoch innerhalb des ORM selbst erreichen.
Verwenden der Cast-Funktion
Um ein CharField in ein umzuwandeln Ganzzahl verwenden Sie die folgende Syntax:
<code class="python">from django.db.models import Cast, IntegerField students.objects.annotate( student_id_int=Cast('student_id', IntegerField()) ).filter(student_id_int__contains=97318).order_by('-student_id_int')</code>
Dadurch wird der Abfragesatz mit einem neuen Feld namens student_id_int annotiert, das in einen ganzzahligen Typ umgewandelt wird. Sie können dieses neue Feld dann nach Bedarf zum Filtern und Sortieren verwenden.
Vorteile der Verwendung von Cast
Die Verwendung von Cast bietet mehrere Vorteile:
Referenz
Weitere Informationen zum Casting in Django ORM finden Sie in der Dokumentation:
Das obige ist der detaillierte Inhalt vonWie wandelt man ein CharField in Django ORM in eine Ganzzahl um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!