Вопрос о программе на python, на примере django
Я думаю, что этот вопрос касается программы python, а не того, как использовать django.
Я запутался в QuerySet, что это такое?
#
print(Hotel.objects.all().values())
# output
<QuerySet [{'x': 1}, {'y': 2}]>
# type
print(type(Hotel.objects.all().values())
#output
<class 'django.db.models.query.QuerySet'>
# like list
print(type(Hotel.objects.all().values()[0])
#output
{'x': 1}
Почему
print(Hotel.objects.all().values())
, это не просто возврат[{'x': 1}, {'y': 2}]
?И почему он может работать как список, но
type()
показывает, что это не список?JsonResponse(Hotel.objects.all().values(), safe=False))
показатьTypeError: Object of type QuerySet is not JSON serializable
.Я думаю, что это как список
[]
, так что он может быть сериализуемым.Но, на самом деле, он не может быть сериализуемым.
Однако, он может работать как список. Например: все методы списка работают, также итерация.