2016-09-16 30 views
-3

我試圖讓所有字段顯示,但即​​時只獲得我的一些字段。我不確定爲什麼那麼這是我的看法如何獲取object.filter()中的所有字段django

我認爲進口

def switchingowners(request): 
ownersofcar = Owner.objects.filter(CarID = request.user['CarID']) 
for owner in ownersofcar : 
      addingOwner = models.Owner(CarID=form['CarID'],Owner_Date=ownerofcar['Owner_Date'] 
       ) 

確定我的模型看起來像

class Owner(models.Model): 

carID = models.ForeignKey(Car)  
Owner_Entry_Number = models.IntegerField() 
Owner_Date = models.DateField('Proprietor start date', null=True, blank=True) 

Owner_Last_Name = models.CharField(max_length=50, null=True, blank=True) 
Owner_First_Name = models.CharField(max_length=50, null=True, blank=True) 
Owner_Middle_Initial = models.CharField(max_length=6, null=True, blank=True) 
Owner_Address = models.CharField(max_length=80, null=True, blank=True) 

我的後臺數據庫在各個領域的信息

ownersofcar = Owner.objects.filter(CarID = request.user['CarID']) 

它告訴我TypeError 和我看到的過濾對象是

self  

[<Owner: 1248612 MALCOLM DESRIVIERES >, <Owner: 1248612 JULIETTA REMY >, <Owner: 1248B612 THERESA DESIR >, <Owner: 1248B612 ALEXANDER JEAN>] 

哪裏在地球上是其他領域?我沒有看到有關確定哪些字段我想收到的任何文檔,因爲我希望它們都是!

每個領域都有重要的信息 IM基本切換所有的名字從一個汽車到另一輛車/多輛

,但過濾器沒有回饋所有字段

+3

其他領域在那裏,你爲什麼認爲他們不是?您可以像訪問其他屬性一樣訪問它們。 –

+1

但是,您應該*顯示正在提供TypeError的代碼*。 –

+0

這只是*字符串表示*。如果你想查看其中的所有字段,只需重寫'__str__'方法並返回你想要的表示。 – Bakuriu

回答

0

我假設你得到一個類型錯誤因爲你在做request.user['CarId']。除非你使用自定義用戶類,否則這是無效的。

這些字段都在那裏,你看到的只是你的結果的字符串表示,如__str____unicode__方法Owner所定義。

要麼改變這種方法或打印您需要的領域,例如:我認識的錯誤,而場均丟失我的同事overrided的STR

for owner in ownersofcar: 
    logger.error(owner.Owner_Address) 
+0

是啊,當我這樣做,我得到 「查詢集'對象沒有屬性'Owner_Address' – user1778743

+0

然後你有一個QuerySet,而不是一個單一的對象。簡單地說,QuerySet是一個沒有屬性的對象列表。我建議看一下Django的文檔查詢:https://docs.djangoproject.com/en/1.10/topics/db/queries/ –

+0

謝謝,我知道了! – user1778743

0

感謝你的球員的建議之一()方法並沒有注意到這個 和覆蓋是正確的,它需要什麼。不包括其他字段

謝謝球員

+0

除了丹尼爾對TypeError所說的話之外,你似乎仍然錯過了其他人的觀點。田野都在那裏。 str表示就是用戶定義的模型表示。該表示不是模型。這些字段在那裏並且可以訪問 - 如果是這樣,使用您的代碼示例,並且ownersofcar是查詢集,您會看到例如ownersofcar [0] .Owner_Last_Name將爲您提供該字段。 – Withnail

相關問題