#はじめに
modelから取得したデータをQuerySet→dict要素を持つlistに変換してあれこれしたかったのですが、意外とすぐに情報が出てこなかったので投稿します。
#結論
以下でOKです。
from .models import Choice
choice_query_set = Choice.objects.all() #QuerySet型で全件取得
choice_list = list(choice_query_set.values())
print(choice_list)
#[{'id': 1, 'question_id': 1, 'choice_text': 'test1', 'votes': 3}, {'id': 2, 'question_id': 1, 'choice_text': 'test2', 'votes': 1}, {'id': 3, 'question_id': 1, 'choice_text': 'test3', 'votes': 2}]
#解説
from .models import Choice
choice_query_set = Choice.objects.all()
print(choice_query_set) #QuerySetで取得
#<QuerySet [<Choice: test1>, <Choice: test2>, <Choice: test3>]>
print(choice_query_set.values()) #変換1
#<QuerySet [{'id': 1, 'question_id': 1, 'choice_text': 'test1', 'votes': 3}, {'id': 2, 'question_id': 1, 'choice_text': 'test2', 'votes': 1}, {'id': 3, 'question_id': 1, 'choice_text': 'test3', 'votes': 2}]>
print(list(choice_query_set.values())) #変換2
#[{'id': 1, 'question_id': 1, 'choice_text': 'test1', 'votes': 3}, {'id': 2, 'question_id': 1, 'choice_text': 'test2', 'votes': 1}, {'id': 3, 'question_id': 1, 'choice_text': 'test3', 'votes': 2}]
変換1:choice_query_set.values()でQuerySetが持つ各要素(Choiceオブジェクト)をdict型に展開
変換2:list(choice_query_set.values())でQuerySetからlistに変換
以上です。
知ってしまえばなんてことないですね