![](/img/trans.png)
[英]Django ORM: How to use count method inside values_list method?
[英]How do i alias a composite value of 2 fields inside the values_list method of object_manager?
我正在尝试创建一个非常简单的表单,它允许用户从选择列表中选择一个活动用户并将该选择提交给后端。 这是我的代码:
class PeerReviewColleagueSelectionForm(forms.Form):
ACTIVE_COLLEAGUES = CustomUser.objects.filter(is_active=True)\
.values_list('id', full_name=F(('first_name') + ' ' + F('last_name')))\
.order_by('full_name').annotate(Count='id')
colleague = forms.ChoiceField(label='selecteer collega', tuple=ACTIVE_COLLEAGUES)
我正在尝试获取一个可由 ChoiceField 小部件使用的tuples
列表,以显示所有可用的活动同事以供选择。
我正在尝试从 CustomUser 的 first_name 和 last_name 字段创建一个名为full_name
的别名。 然后我想按该别名对结果进行排序,并使用 annotate(count) 按 id 分组(因为我知道每个 id 都是唯一的,并且我想要由(id, full_name,)
组成的元组
但是,当我尝试此操作时,它会抛出: TypeError: values_list() got an unexpected keyword argument 'full_name'
如何根据 id 和名为 full_name 的别名创建元组?
不幸的是values_list()
不接受表达式关键字参数。 所以你应该先注释新字段:
CustomUser.objects.filter(is_active=True)
.annotate(full_name=Concat('first_name', Value(' '), 'last_name')
.values_list('id', "full_name")
.order_by('full_name')
请注意,您可以使用Concat
数据库函数来执行字符串连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.