django - 在 Django 中指定列名的别名

标签 django django-models

我目前正在查询 django 的 auth_users 表以返回匹配搜索条件的用户。

users = User.objects.filter(
      Q(first_name__icontains = name)| 
      Q(username__icontains = name) | 
      Q(email__icontains = name) | 
      Q(last_name__icontains = name)
   ).values(
      'id', 'username', 'first_name', 'last_name', 'email'
   ).order_by('first_name')

我想知道是否可以将“first_name”的名称更改为“firstname”?
就像我们可以在 SQL [ Select first_name as firstname from auth_users 中所做的那样];

这样我就可以使用 firstname 而不是 first_name 来访问它

谢谢

最佳答案

您可以根据需要注释字段,使用 F expression :

from django.db.models import F

users = User.objects.filter(
      Q(first_name__icontains = name) | 
      Q(username__icontains = name) | 
      Q(email__icontains = name) | 
      Q(last_name__icontains = name)
   ).values(
      'id', 'username', 'first_name', 'last_name', 'email'
   ).order_by('first_name'
   ).annotate(firstname = F('first_name'))

关于django - 在 Django 中指定列名的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4190886/

相关文章:

python - django - 1.选择 2.过滤 3.然后剪切

python - 用于格式化字符字段数据的自定义模型字段

python - django get_or_create 取决于自定义管理器方法的结果

python - 如何使用 Django-filer( Assets 文件管理器)?

python reportlab - registerFont - django - 一段时间后字体不可用

mysql - SQL,为什么显式查找数据比 SELECT * 更快

python - Django ORM - .update(…) 带有 extra(…) 和 F(…)

django - 在 django 中使用 python Social auth 保存用户的社交身份验证名称

css - 从 Django CMS 中删除默认 CSS

mysql - 每次项目运行时django都会给出重复的错误