Umwandeln eines Zeichenfelds in eine Ganzzahl in Django ORM
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:
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')
Dadurch wird der Abfragesatz mit einem neuen Feld namens student_id_int versehen, 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:
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3