Jeg havde et lignende problem; dybest set ønskede jeg at sammenkæde to felter for at få det fulde navn på en bruger. Jeg fik det løst på denne måde (men må sige, at jeg brugte 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()))
hvor, F('...')
evaluerer dets argument som en forespørgsel, så du kan forespørge i et felt af selve modellen eller spænde over modeller, som du ville gøre i filter/get, mens Value('...')
evaluerer dets argument bogstaveligt (i mit tilfælde havde jeg brug for et mellemrum mellem first_name
og last_name
), og output_field=...
angiver typen af det kommenterede felt (jeg ønskede at være et CharField
).For mere info kan du læse Django-dokumenter om Konk.
Håber det vil være nyttigt for nogen derude. Skål