Django查询集筛选与concat的关系

Django查询集筛选与concat的关系,django,django-orm,Django,Django Orm,我想根据用户的concat(first_name,last_name)筛选用户,这可以通过UserProfile访问 if user.profile.first_name + ' ' + user.profile.last_name LIKE query 我只有User.objects.All() 我用extra()、ComplexQuery、annotation()尝试了一些东西,但都不管用 有什么办法吗?给你: from django.contrib.auth.models import

我想根据用户的concat(first_name,last_name)筛选用户,这可以通过UserProfile访问

if user.profile.first_name + ' ' +  user.profile.last_name LIKE query
我只有User.objects.All()

我用extra()、ComplexQuery、annotation()尝试了一些东西,但都不管用

有什么办法吗?

给你:

from django.contrib.auth.models import User
from django.db.models import Value, Func, F, CharField

User.objects.annotate(full_name=Func(F('first_name'), Value(' '), F('last_name'), function='CONCAT', output_field=CharField())).filter(full_name__icontains='Dusan Plavak')
更新#1:

给你:

from django.contrib.auth.models import User
from django.db.models import Value, Func, F, CharField

User.objects.annotate(full_name=Func(F('first_name'), Value(' '), F('last_name'), function='CONCAT', output_field=CharField())).filter(full_name__icontains='Dusan Plavak')
更新#1:

见更新#1。您可以按正常方式访问相关模型字段。请参阅更新#1。您可以按正常方式访问相关模型字段。