スポンサーリンク
文字のフィールドを、数字で並べ替えするときに、「1,2,3,4,10」と並んでほしいのに、文字のために「1,10,2,3,4」となってしまいます。
SQLだとCastを利用しますが、DjangoでもCastが使えましたので構文を残しておきます。
必要なモジュール
from django.db.models import IntegerField
from django.db.models.functions import Cast
object操作
フィールド名は「fieldA」で文字列のフィールドとなっています。
数字に変えてソートします。
xxxx.objects.all().order_by(Cast('fieldA',output_field=IntegerField()))
スポンサーリンク
スポンサーリンク