Django: Profile?

2 Antworten

    users = [user for user in profile.following.all()]
    [...]
    for u in users:

Das kannst Du genauso gut als

for u in profile.following.all():

Ich weiß ja nicht, was following.all() zurückliefert, aber damit die Comprehension überhaupt einen Sinn hat, müßtest Du schon filtern oder zumindest die einzelnen Items irgendwie transformieren.

Und wie regex9 sagt:

Fang die Exception und schreibe Dir ein Debug Log oder ähnliches.

Der Fehlermeldung zufolge wird hier:

p = Profile.objects.get(user=u)

der übergebene Nutzer in der Datenbank nicht gefunden. Es wäre wohl sinnvoll (via Logging) zu schauen, welche konkreten Werte zur Laufzeit übergeben werden.

Den Fehler selbst könntest du via try-except abfangen:

try:
  p = Profile.objects.get(user=u)
  # ...
except Profile.DoesNotExist:
  # maybe write a log ...
martinslovaki 
Fragesteller
 05.06.2022, 15:46

das werde ich jetzt versuchen, aber mir ist gerade aufgefallen das der benutzer mit dem ich eingeloggt war nur diese fehlermeldung angezeigt hat. mit einem anderen beutzer war das problem nicht mehr da, woran könnte das liegen?

0
regex9  05.06.2022, 16:23
@martinslovaki

Die profile.following.all-Methode liefert doch sicherlich je Nutzer unterschiedliche Objekte zurück.

1
martinslovaki 
Fragesteller
 05.06.2022, 18:18
@regex9

wo muss ich den code den du mir empfohlen hast einfügen?

0