在Django ORM 中將字元欄位轉換為整數
使用Django ORM 查詢字元時,可能會遇到需要轉換字元欄位的場景為一個整數。當欄位儲存為 CharField 但您想要使用整數值執行計算或比較時,可能會發生這種情況。
為什麼 CAST 不可用?
在早期版本中對於這種情況,Django、原始 SQL 查詢或資料庫函數是必需的。但是,隨著 Django 1.10 中引入 Cast 函數,您可以在 ORM 本身內實現此轉換。
使用Cast 函數
將CharField 轉換為整數,使用下列語法:
<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>
這將使用名為Student_id_int 的新欄位來註釋查詢集,此欄位將轉換為整數類型。然後,您可以根據需要使用這個新欄位進行過濾和排序。
使用Cast 的好處
使用Cast 有以下幾個好處:
參考
有關 Django ORM中轉換的更多信息,請參閱文檔:
以上是如何在 Django ORM 中將 CharField 轉換為整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!