同様の問題がありました。基本的に、2つのフィールドを連結して、ユーザーのフルネームを取得したいと思いました。私はそれをこのように解決しました(しかし、私はPostgresを使用していたと言わなければなりません):
from django.db.models.functions import Concat
from django.db.models import F, Value, CharField
AnyModel.objects.filter(**kwargs).annotate(full_name=Concat(F('model__user_first_name'), Value(' '), F('model__user_last_name'), output_field=CharField()))
ここで、F('...')
引数をクエリとして評価するため、モデル自体のフィールドにクエリを実行したり、Value('...')
の間にfilter/getで行うようにモデルにまたがったりすることができます。 その引数を文字通り評価します(私の場合、first_name
の間にスペースを配置する必要がありました およびlast_name
)、およびoutput_field=...
注釈付きフィールドのタイプを指定します(CharField
になりたかった )詳細については、Djangoのドキュメントをご覧ください。コンキャット
それがそこにいる誰かのために役立つことを願っています。乾杯