次のようなクエリがあります。
file_s = Share.objects.filter(shared_user_id=log_id)
ここで、Django ビューの file_s から files_id 属性を取得したいと考えています。どうやってやるの?
次のようなクエリがあります。
file_s = Share.objects.filter(shared_user_id=log_id)
ここで、Django ビューの file_s から files_id 属性を取得したいと考えています。どうやってやるの?
values()
次のような辞書のリストを返す特定の属性を取得するために使用します
file_s = Share.objects.filter(shared_user_id=log_id).values('files_id')
EDIT:属性が1つだけ必要な場合はflat=True
、値のリストだけを返すように提案するために使用できます。ただし、リストがどのような順序になるかを確認してください。
file_s = Share.objects.filter(shared_user_id=log_id).values_list('files_id', flat=True).order_by('id')
あなたのShare.objects.filter()
呼び出しは、単一のレコードではなく、各アイテムがインスタンスであるデータベースからフィルター処理されたオブジェクトのイテラブルである Djagno QuerySet オブジェクトを返しShare
ます。filter
呼び出しで複数のアイテムが返される可能性があります。
QuerySet
次のようなループを使用して反復処理できます。
for share in files_s:
print share.files_id
クエリが 1 つのアイテムのみを返すことがわかっている場合は、次のようにすることができます。
share = Share.objects.get(shared_user_id=log_id)
これは、属性にShare
アクセスできる単一のインスタンスを返します。files_id
クエリが 1 つ以外の結果を返す場合、例外が発生します。