有没有办法为字段实现序列化器?
我有一个自定义字段,它是 models.TextField 的子类,如下所示:
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
作为字段的任何其他模型上重复相同的逻辑。
感谢您的宝贵时间!
我是一名优秀的程序员,十分优秀!