Имах подобен проблем; по принцип исках да свържа две полета, за да получа пълното име на потребител. Реших го по този начин (но трябва да кажа, че използвах 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('...')
оценява аргумента си като заявка, така че можете да заявите поле на самия модел или да обхващате модели, както бихте направили във filter/get, докато Value('...')
оценява аргумента си буквално (в моя случай имах нужда от интервал между first_name
и last_name
) и output_field=...
определя типа на анотираното поле (исках да бъда CharField
).За повече информация можете да прочетете документите на Django за Конкат
Надявам се, че ще бъде полезно за някой там. Наздраве