QuerySet, Objekt hat keine Attribut-ID - Django

8

Ich versuche, die ID eines bestimmten Objekts in django zu holen, aber ich bekomme immer den folgenden Fehler Ausnahmewert: QuerySet; Das Objekt hat keine Attribut-ID. Meine Funktion in views.py

%Vor%

Der Fehler tritt in der if-Bedingung in diesem Teil auf (attachedInfo = at.id). Ich habe das überprüft, als ich es aus dem Zustand entfernte, alles funktionierte gut.

Hier ist models.py

%Vor%

Irgendwelche Hilfe, warum ich diesen Fehler bekomme?!

    
omarsafwany 15.05.2013, 18:34
quelle

3 Antworten

20

diese Codezeile

at = AttachedInfo.objects.filter(attachedMarker=m.id, title=title)

gibt ein Abfragesatz

zurück

und Sie versuchen auf ein Feld davon zuzugreifen (das nicht existiert).

Was Sie wahrscheinlich brauchen, ist

%Vor%     
EsseTi 15.05.2013, 18:42
quelle
13

Der Grund, warum Sie den Fehler erhalten, ist, weil at ein QuerySet ist, dh: eine Liste. Sie können etwas wie at[0].id oder get anstelle von filter verwenden, um das Objekt at zu erhalten.

Ich hoffe, es hilft!

    
Paulo Bu 15.05.2013 18:41
quelle
1

In den meisten Fällen möchten Sie nicht vorhandene Objekte wie diese behandeln. Anstelle von

%Vor%

verwenden

%Vor%

Es ist die empfohlene Django-Verknüpfung dafür .

    
oberam-eng 16.02.2018 20:42
quelle