Django:"用户"和"用户"实例之间不支持"<"



当我这样做时:

qs1 = User.objects.filter(first_name__icontains=search).filter(is_superuser=False)
qs2 = User.objects.filter(last_name__icontains=search).filter(is_superuser=False)
users = sorted(set(chain(qs1, qs2)))

我得到这个错误:

'<' not supported between instances of 'User' and 'User'

链接Querysets通常不是一个好主意,因为您无法进一步筛选、注释这些,而且它会导致两个(或多个(查询。

您可以将两个QuerySet与结合使用

from django.db.models importQ
User.objects.filter(
Q(first_name__icontains=search) | Q(last_name__icontains=search),
is_superuser=False
).order_by('pk')

这将导致元素为User对象的单个查询。

尝试类似的东西

qs1 = User.objects.filter(first_name__icontains=search).filter(is_superuser=False)
qs2 = User.objects.filter(last_name__icontains=search).filter(is_superuser=False)
qs1 = qs1.values_list('id', flat=True)
qs2 = qs1.values_list('id', flat=True)
users = sorted(set(chain(list(qs1), list(qs2))))

相关内容

最新更新