【发布时间】:2018-02-04 08:15:23
【问题描述】:
如何在这个 QuerySet 中获取 course_code 的值?
<QuerySet [{'course_code': 11}]>
【问题讨论】:
如何在这个 QuerySet 中获取 course_code 的值?
<QuerySet [{'course_code': 11}]>
【问题讨论】:
使用这个
someTable.objects.all()[0]['course_code']
或
someTable.objects.values_list('course_code', flat = True)
【讨论】:
someTable.objects.values_list('course_code', flat = True) 这将返回一个查询集。
什么对我有用:
course_qs = <whatever query gave you the queryset>
list_of_course = list(course_qs)
bool()、or、and 或 if
【讨论】:
course_qs = <whatever query gave you the queryset>
for course in course_qs:
print(course['course_code'])
【讨论】:
现在比以前容易多了。例如,您可以使用:
obj = Model.objects.all().first() # {'course_code': 11}
course_code = obj.course_code # 11
【讨论】:
您可以尝试以下方法,它会从 查询集。
courses = <your query set>
linked_content = []
for content in courses:
linked_content.append(content)
return linked_content
【讨论】:
courses = <your query set>
print(courses[0]['course_code'])
【讨论】:
这将返回一个查询集:Django 4.0
result = User.objects.filter(Q(ip__icontains='count')) #<QuerySet [<User: count>]>
这会返回count的值:
result.values('count').get()['count']
但是这太疯狂了?!必须而且应该有一个更简单的解决方案...
型号:
class User(django.Model):
count = models.PositiveIntegerField(default=1)
【讨论】:
好吧,这就是我所做的。
1:
items = ItemParent.objects.filter(item_type__contains="something")
# <QuerySet [<Item: iron>]>
2:
items.values()
# <QuerySet [{'id': 5, 'item_parent_id': 8, 'item_type': 'iron', 'item_article_no': '12336'}]>
3:
items.values()["id"]
# 5
当QuerySets为多个集合时:
# <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"]
【讨论】: