AttributeError: 'QuerySet' - Objekt hat kein Attribut
Kann mir jemand erklären, was ich bin zu sehen in der shell folgende Ausgabe bitte an:
import test/models.py
biz_area = BusinessArea.objects.filter(business_area_manager=user)
dprint(biz_area)
[{'_state': <django.db.models.base.ModelState object at 0x3726890>,
'business_area_id': Decimal('42'),
'business_area_manager': Decimal('999'),
'business_area_name': u'group 1',
'inactive': u'N'}]
biz_area.business_area_id
Traceback (most recent call last):
File "<<console>console>", line 1, in <<module>module>
AttributeError: 'QuerySet' object has no attribute 'business_area_id'
So, python ist zu sagen, dass die biz_area queryset hat keine 'business_area_id' - Attribut, wenn das hübsche gedruckte Auflistung des Objekts zeigt, dass es nicht solch ein Attribut. Kann jemand mich auf die richtige Spur, da dieser verwirrend ist, die mich etwas...
Was
das würde nicht funktionieren, da
Du hast natürlich Recht. Ich sollte meine andere Brille zu schauen, die Frage ...
biz_area['business_area_id']
?das würde nicht funktionieren, da
biz_area
ist ein sammeln von ObjektenDu hast natürlich Recht. Ich sollte meine andere Brille zu schauen, die Frage ...
InformationsquelleAutor d_w_r | 2013-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
biz_area
istQuerySet
Objekt. Dies ist eine Sammlung, die nicht ein einzelnes Objekt.Den eckigen Klammern ([]) bezeichnen eine Sammlung. Könnte man denken, dass diese im Hinblick auf die als python-Liste
Gibt es ein paar Wege im Umgang mit diesem:
filter ist immer wieder ein colletion von Objekten
Wenn
BusinessArea
wird immer nur ein assoziierenuser
Lesen Sie die Dokumentation zu den
get
verringern und Ausnahmen, wenn es mehr Objekte, oder 0 Objekte mit Ihrer Suchanfrage übereinstimmenInformationsquelleAutor dm03514
Falsch, pretty print von
biz_area
nicht zeigen, dass esbusiness_area_id
- Attribut, und es wäre seltsam, wenn es vorhanden war, als das queryset ist eine Sammlung von Objekten (sichtbar als eine Liste in der pretty-print obwohl es keine Liste tatsächlich) undbusiness_area_id
ist ein Attribut ein einzelnes Objekt.InformationsquelleAutor wRAR
wenn Sie
du wirst sehen, dass es eine Liste geben, nicht ein Objekt aus einem queryset. Sie haben zu Durchlaufen und alle Elemente in Ihrem biz_area variable und drucken Sie Sie aus.
Wenn Sie abgerufen wird ein einzelnes Objekt könnte man dann Zugriff auf seine business_area_id Attribut wie Sie es getan haben.
InformationsquelleAutor Samuele Mattiuzzo