Von django documentation, Zitat
Klasse UUIDField (** Optionen) [Quelle] ¶
Ein Feld universell eindeutige Kennungen für die Speicherung. Verwendet Pythons UUID-Klasse. Bei Verwendung in PostgreSQL wird dies in einem UUID-Datentyp gespeichert, andernfalls in einem Zeichen (32).
Auch aus Python docs, Zitat
Klasse uuid.UUID (hex = None, Bytes = None, bytes_le = None, Felder = None, int = None, Version = None)
erstellen
ein UUID entweder von einer Zeichenfolge von 32 hexadezimalen Ziffern, eine Zeichenfolge von 16 Byte als Byte Argument, eine Zeichenfolge von 16 Bytes in little-endian-Ordnung als bytes_le Argument, ein Tupel von sechs Ganzzahlen (32-Bit time_low, 16-bit time_mid, 16-bit time_hi_version, 8-bit clock_seq_hi_variant, 8-bit clock_seq_low, 48-bit-Knoten) als Feldargument oder eine einzelne 128-Bit-Ganzzahl als das int-Argument
um auf den Punkt,
UPDATE
Schließlich spezifisch zu sein, ich es habe. Eigentlich wirft Django Fehler auf.
Ich werde nur mit einem einfachen Beispiel veranschaulicht,
einfach Ihren Code versuchen,
my_filtered_models = MyModel.objects.filter(guid='invalid_guid')
Dieser Code wirft Fehler nicht auf, weil die try-Anweisung der Zuordnung besteht unabhängig von dem Ergebnis der die Abfrage, die Sie gerade mit der Variablen "my_filtered_models" durchgeführt haben. Wenn Sie jedoch versucht haben, zu drucken oder auf my_filtered_variable zuzugreifen, wird der ValueError ausgelöst.
Infact,
MyModel.objects.filter(guid='invalid_guid')
Diese Aussage wirft Valueerror. Ich ziehe meine vorherige Antwort zurück, indem ich sie selbst lösche, auch meine Entschuldigung für diese fehlerhafte Antwort.
Also, Ihr Code,
try:
my_filtered_models = MyModel.objects.filter(guid='invalid_guid')
except ValueError:
print "you messed up"
tritt nicht die Ausnahme, denn jedes Mal wenn es läuft, wird der Valueerror auf my_filtered_models zugeordnet. Nur wenn auf die Variable zugegriffen wird, wird der Fehler ausgelöst.
Ich hoffe, Sie haben bekommen, was Sie gesucht haben.
hängt davon ab, wo Sie den Code geschrieben haben? und wie zugreifen Sie es – Exprator
versuchen 'DoesNotExist' – Tushortz
in "django.db.models.fields.UUIDField # get_db_prep_value" verwendet es 'invalid_guid' zu versuchen, eine UUID zu erstellen:' value = uuid.UUID (value.replace (‘ - ',' ')). Dies ist der Punkt, an dem ein ValueError ausgelöst wird, aber immer noch nicht von meinem Code abgefangen wird. – trubliphone