2013-01-22 68 views

回答

32

使用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') 
+0

我怎樣才能得到唯一的ID:[{'files_id':1L}]從這個整數。 – user1881957

+1

@ user1881957,檢查更新,如果'flat = True'參數可以使用。 – Rohan

+0

TypeError:values()得到了一個意外的關鍵字參數'flat' – user1881957

1

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結果以外的任何內容,則會引發異常。

相關問題