【问题标题】:how to get the value of an attribute (pk) using QuerySet如何使用 QuerySet 获取属性 (pk) 的值
【发布时间】:2019-09-23 11:56:00
【问题描述】:

我正在尝试获取主要属性的值 (pk)。怎么做 ? 这个等价

SELECT id FROM User WHERE username="Fokoa"

【问题讨论】:

    标签: django database django-queryset


    【解决方案1】:

    多种方式:

    User.objects.filter(username='Fokoa').values_list('id', flat=True)
    

    或者,如果您知道 username 是唯一的:

    user = User.objects.get(username='Fokoa')
    user.id
    

    【讨论】:

      【解决方案2】:

      您可以为此使用.values_list(..) [Django-doc]

      from django.contrib.auth.models import User
      
      User.objects.filter(username='Fokoa').values_list('pk', flat=True)

      或者我们可以将其转换为主键列表:

      from django.contrib.auth.models import User
      
      list(User.objects.filter(username='Fokoa').values_list('id', flat=True))

      话虽如此,在 Django 中查询特定列并不常见。将主键视为“黑盒标记”是一种很好的做法,因此不要将它们解释为整数处理它们。毕竟,经常总结两个主键并没有多大意义。

      【讨论】:

        猜你喜欢
        • 2021-06-18
        • 1970-01-01
        • 1970-01-01
        • 2018-11-14
        • 2015-07-13
        • 2012-07-21
        • 1970-01-01
        • 2023-01-23
        • 1970-01-01
        相关资源
        最近更新 更多