Замените содержимое поля UUID на нулевое по умолчанию

Используя Django==2.2.27, и Postgres

У меня есть Модель, с полем UUID:

from django.db import models

class MyModel(models.Model):
  uuid_field = models.UUIDField(
    blank=True,
    db_index=True,
    null=True,
  )

Мне нужно удалить содержимое поля (столбца) для некоторых объектов (строк) - но когда я пытаюсь:

my_object.uuid_field = None
my_object.save()

Я получаю эту ошибку:

ValidationError: ["'None' is not a valid UUID."]

^ Это имеет смысл, так как значение определенно не является UUID: link

Немного больше объяснений:

  1. I can create objects without populating the uuid_field so it stays null
  2. I will most likely populate the uuid_field
  3. I might need to delete the uuid_field content
  4. I cannot change the UUIDField to a char field or anything else

Есть ли способ вернуть поле к его стандартному null с помощью Django ORM?
Спасибо!

Имеющееся у меня решение не Django ORM выглядит следующим образом:

from django.db import connection

with connection.cursor() as cursor:
  cursor.execute("UPDATE mymodelapp_mymodel SET uuid_field = null WHERE id = %s", [<MyModel id, int>])

Я бы хотел получить ORM-решение.

Одна вещь, которую я могу сделать, это переопределить models.UUIDField и настроить его так, чтобы он вел себя так, как я ожидаю - но я открыт для других идей

Вернуться на верх