есть ли способ реализовать сериализатор для поля?
У меня есть настраиваемое поле, которое является подклассом моделей. Текстовое поле выглядит так:
class UpperCaseField(models.TextField):
pass
Я хотел бы использоватьэто в модели Person следующим образом:
class Person(models.Model):
first_name = models.TextField()
last_name = UpperCaseField()
Пользователи могут создавать объекты Person следующим образом:
student = Person(first_name='John', last_name='Doe')
, но я хочу сохранить его как John DOE
вместо John Doe
.
Для каждого сохранения объекта я хотел бы преобразовать last_name
в верхний регистр перед сохранением БД.поэтому мне нужно написать сериализатор для UpperCaseField
.Как я могу это сделать?Я знаю, что могу использовать сигналы предварительного сохранения или переопределить метод модели save
, но все эти решения являются решениями на уровне модели.Я хочу сделать это на уровне поля, поэтому мне не нужно повторять ту же логику на любых других моделях, которые я использую UpperCaseField
в качестве поля.
Спасибо за ваше время!