Django values_listとvaluesの違い 質問する

Django values_listとvaluesの違い 質問する

Django では、次の 2 つの違いは何ですか?

Article.objects.values_list('comment_id', flat=True).distinct()

対:

Article.objects.values('comment_id').distinct()

私の目標は、それぞれの下に一意のコメント ID のリストを取得することですArticle。ドキュメントを読みました (実際、両方のアプローチを使用しました)。結果は明らかに似ているようです。

ベストアンサー1

values()メソッドは辞書を含む QuerySet を返します。

<QuerySet [{'comment_id': 1}, {'comment_id': 2}]>

values_list()メソッドはタプルを含む QuerySet を返します。

<QuerySet [(1,), (2,)]>

単一のフィールドで を使用している場合は、 1 タプルではなく単一の値の QuerySet を返すために をvalues_list()使用できます。flat=True

<QuerySet [1, 2]>

おすすめ記事