„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie wandelt man ein CharField in Django ORM in eine Ganzzahl um?

Wie wandelt man ein CharField in Django ORM in eine Ganzzahl um?

Veröffentlicht am 10.11.2024
Durchsuche:240

How to Cast a CharField to an Integer in Django ORM?

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:

  • Typsicher: Stellt sicher, dass der resultierende Wert dem angegebenen entspricht Typ.
  • Vermeidet Rohabfragen: Hält Ihre Abfragen im ORM, vereinfacht die Wartung und reduziert das Risiko einer SQL-Injection.
  • Effizient: Führt durch das Casting effizient in der Datenbank durchführen Ebene.

Referenz

Weitere Informationen zum Casting in Django ORM finden Sie in der Dokumentation:

  • [Datenbankfunktionen : Besetzung](https://docs.djangoproject.com/en/stable/ref/models/database-functions/#cast)
Neuestes Tutorial Mehr>

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