Ho avuto un problema simile; in pratica volevo concatenare due campi per ottenere il nome completo di un utente. Ho risolto in questo modo (ma devo dire che stavo usando 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()))
dove, F('...')
valuta il suo argomento come una query, quindi puoi interrogare un campo del modello stesso, o estenderti tra i modelli come faresti in filter/get, mentre Value('...')
valuta letteralmente il suo argomento (nel mio caso avevo bisogno di uno spazio da inserire tra first_name
e last_name
), e output_field=...
specifica il Tipo del campo annotato (volevo essere un CharField
). Per ulteriori informazioni, puoi leggere Django docs about Concat
Spero che possa essere utile per qualcuno là fuori. Saluti