[django] get_or_create wirft DoesNotExist

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

[django] get_or_create wirft DoesNotExist

Beitragvon jens » Mittwoch 6. August 2008, 12:09

Kann mir jemand verraten, warum ein get_or_create dennoch ein DoesNotExist wirft?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Beitragvon sma » Mittwoch 6. August 2008, 12:33

Wenn das Modell nicht existiert, aber auch nicht angelegt werden kann. Siehe Zeile 11 in diesem Ausschnitt von `db/models/query.py`:

Code: Alles auswählen

try:
            return self.get(**kwargs), False
        except self.model.DoesNotExist:
            try:
                params = dict([(k, v) for k, v in kwargs.items() if '__' not in k])
                params.update(defaults)
                obj = self.model(**params)
                obj.save()
                return obj, True
            except IntegrityError, e:
                return self.get(**kwargs), False

Stefan
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 7. August 2008, 07:40

Aber sollte dann nicht statt eines DoesNotExist ein IntegrityError geworfen werden? Würde IMHO mehr Sinn machen.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder