Django查询集筛选与concat的关系
我想根据用户的concat(first_name,last_name)筛选用户,这可以通过UserProfile访问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
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。您可以按正常方式访问相关模型字段。