我有這樣的查詢:如何從Django中的查詢集中獲取特定屬性?
file_s = Share.objects.filter(shared_user_id=log_id)
現在,我想從在Django視圖file_s的files_id屬性。我怎樣才能做到這一點?
我有這樣的查詢:如何從Django中的查詢集中獲取特定屬性?
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')
編輯:如果你想只有一個屬性,那麼你可以使用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
如果你知道你的查詢只期望返回一個單一的項目,你可以這樣做:
share = Share.objects.get(shared_user_id=log_id)
這將返回一個Share
實例,您可以從中訪問files_id
屬性。如果查詢將返回除1結果以外的任何內容,則會引發異常。
我怎樣才能得到唯一的ID:[{'files_id':1L}]從這個整數。 – user1881957
@ user1881957,檢查更新,如果'flat = True'參數可以使用。 – Rohan
TypeError:values()得到了一個意外的關鍵字參數'flat' – user1881957