2016-09-16 2 views
-3

Ich versuche, alle Felder anzuzeigen, aber ich bekomme nur ein paar meiner Felder. Ich bin nicht sicher, warum hier so meine Ansichten istWie bekomme ich alle Felder in einem Objekt? Filter() django

meiner Sicht Importe

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'] 
       ) 

ok Modelle aussehen

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) 

meine Datenbank-Backend hat Informationen in allen Bereichen

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

es sagt mir TypeError und die gefilterten Objekte, die ich sehe, sind

self  

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

wo auf der Erde sind die anderen Felder? Ich sehe keine Dokumentation darüber, welche Felder ich erhalten möchte, weil ich sie alle will!

jedes Feld hat wichtige Informationen im Grunde alle Namen von einem Auto in ein anderes Auto Schalt/mehrere Autos

aber Filter alle Felder nicht zurück geben

+3

Die anderen Felder sind da, warum denkst du, sie sind nicht? Sie können auf sie wie jedes andere Attribut zugreifen. –

+1

Sie sollten jedoch * den Code * zeigen, der einen TypeError gibt. –

+0

Das ist nur die * String-Darstellung *. Wenn Sie alle Felder darin sehen wollen, überschreiben Sie einfach die '__str__' Methode und geben Sie die gewünschte Repräsentation zurück. – Bakuriu

Antwort

0

Ich gehe davon aus, Sie werden immer einen Typfehler weil du machst request.user['CarId']. Sofern Sie keine benutzerdefinierte Benutzerklasse verwenden, ist dies nicht gültig.

Die Felder sind alle da, was Sie sehen, ist nur eine String-Darstellung Ihres Ergebnisses wie durch die __str__ oder __unicode__ Methode von Owner definiert.

Entweder diese Methode ändern oder das Feld drucken, die Sie wollen, zB:

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

ja ‚Owner_Address‘ hat, wenn ich tun, dass ich ‚QuerySet bekommen 'object hat kein Attribut' Owner_Address ' – user1778743

+0

Dann haben Sie ein QuerySet, kein einzelnes Objekt. Einfach gesagt, ein QuerySet ist eine Liste von Objekten, die nicht über das Attribut verfügen.Ich schlage vor, einen Blick auf die Django-Dokumentation zu Fragen zu werfen: https://docs.djangoproject.com/de/1.10/topics/db/queries/ –

+0

danke ich habe es! – user1778743

0

dank einer Ihrer Jungs Vorschlag, den ich den Fehler erkennen, während Felder waren meine Mitarbeiter fehlt overrided die str() -Methode und warnt nicht darauf und die Überschreibung ist genau das, was es braucht. nicht die anderen Felder enthalten

danke Jungs

+0

Zusätzlich zu dem, was Daniel über den TypeError gesagt hat, scheint Ihnen immer noch der Punkt zu fehlen, den die anderen machen. Die Felder sind alle da. Die str-Darstellung ist genau das, eine benutzerdefinierte Darstellung des Modells. Die Darstellung ist nicht das Modell. Die Felder sind dort und zugänglich - wenn Sie dies tun, verwenden Sie Ihr Codebeispiel, und eightersofcar ist das Abfrage-Set, Sie sehen, dass z. Eigentümer von Auto [0]. Besitzer_Letzte_Name wird Ihnen dieses Feld geben. – Withnail

Verwandte Themen