2016-09-16 2035 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

相关问题