テーブルのすべてのID /プライマリキーのリストを取得するにはどうすればよいですか。このテーブルがあるとしましょう:
class Blog(models.Model)
title = models.CharField()
body = models.CharField()
author = models.ForeignKey(Author)
フィールドauthorがAuthorオブジェクトであると仮定します。 author = authorのブログのすべてのIDを取得したい
私は使用できると知っています
blogs = Blog.objects.filter(author=author)
リスト形式ですべてのブログオブジェクトを取得しますが、リストIDS/PKを取得するにはどうすればよいですか? 「ブログからAuthorを作成者= IDを選択」に類似
これを行うには values_list
メソッド。
blogs = Blog.objects.filter(author=author).values_list('id', flat=True)
Django queryset documentation で詳細を参照してください。
_Blog.objects.filter(author=author).values_list('id', flat=True)
_
values_list()
は行のリストを提供し、各行は引数として指定したすべてのフィールドのタプルを順番に並べます。引数として単一のフィールドのみを渡す場合、タプルのリストの代わりにプレーンリストを取得するために_flat=True
_を指定することもできます。
Blog.objects.filter(author = author).values_list( 'pk'、flat = True)
ベストプラクティスとして、「id」の代わりに「pk」を入力します。