Fixed #35032 -- Corrected Char32UUIDField implementation in 5.0 release notes.

This fixes Char32UUIDField implementation in 5.0 release notes causing
records with UUIDFields created using pre-Django 5.0 and CHAR(32) not
being able to be saved anymore after upgrading and keeping the CHAR(32)
columns.

Regression in 7cd187a5ba.
This commit is contained in:
Emanuel Andrecut 2023-12-13 17:04:06 +02:00 committed by Mariusz Felisiak
parent 2190096f50
commit e72b2826ff
1 changed files with 7 additions and 2 deletions

View File

@ -508,6 +508,12 @@ Django < 5.0 should be replaced with a ``UUIDField`` subclass backed by
def db_type(self, connection):
return "char(32)"
def get_db_prep_value(self, value, connection, prepared=False):
value = super().get_db_prep_value(value, connection, prepared)
if value is not None:
value = value.hex
return value
For example::
class MyModel(models.Model):
@ -516,8 +522,7 @@ For example::
Should become::
class Char32UUIDField(models.UUIDField):
def db_type(self, connection):
return "char(32)"
...
class MyModel(models.Model):