在 Django 中获取 QuerySet 的值



如何在此查询集中获取course_code的值?

<QuerySet [{'course_code': 11}]>
course_qs = <whatever query gave you the queryset>
for course in course_qs:
    print(course['course_code'])

使用这个

someTable.objects.all()[0]['course_code']

someTable.objects.values_list('course_code', flat = True)
courses = <your query set>
print(courses[0]['course_code'])

什么对我有用:

course_qs = <whatever query gave you the queryset>  
list_of_course = list(course_qs)

何时计算查询集

  1. 第一次迭代它们时
  2. 例如,当你对它们进行切片时,Post.objects.all(([:3]
  3. 当你腌制或缓存它们时
  4. 当你在它们上调用 repr(( 或 len(( 时
  5. 当你在它们上显式调用 list(( 时
  6. 在语句(如 bool()orandif 中测试它们时

现在比以前容易得多。 例如,您可以使用:

obj = Model.objects.all().first()  # {'course_code': 11}
course_code = obj.course_code      # 11

好的,这就是我所做的。

1:

items = ItemParent.objects.filter(item_type__contains="something")
# <QuerySet [<Item: iron>]>

阿拉伯数字:

items.values()
# <QuerySet [{'id': 5, 'item_parent_id': 8, 'item_type': 'iron', 'item_article_no': '12336'}]>

3:

items.values()["id"]
# 5

QuerySet 是多个集时:

# <QuerySet [{'id': 5, 'item_parent_id': 8, 'item_type': 'iron', 'item_article_no': '12336'},
#            {'id': 6, 'item_parent_id': 9, 'item_type': 'rust', 'item_article_no': '12338'}]>
item_id_one = items.values()[0]["id"]
item_id_two = items.values()[1]["id"]
# etc..

或者就我而言:

for f in items.values()
    item_id = f["id"]

您可以尝试以下操作,这将从 查询集。

courses = <your query set>
linked_content = []
for content in courses:
    linked_content.append(content)
return linked_content

这将返回一个查询集: Django 4.0

result = User.objects.filter(Q(ip__icontains='count')) #<QuerySet [<User: count>]>

这将返回计数的值:

result.values('count').get()['count']

然而,这是疯狂的编译?!必须而且应该有一个更简单的解决方案...

型:

class User(django.Model):
     count = models.PositiveIntegerField(default=1)

你可以使用这个:

>>> course_code = str(table_name.objects.all()[0])
>>> course_code
'11'

最新更新