Python 如何使DRF序列化程序与大写兼容
我的老板决定将RESTAPI从*ava迁移到Django。 以前的Java开发人员设计了camelCase中的每个数据库字段,例如Python 如何使DRF序列化程序与大写兼容,python,django,django-models,django-rest-framework,Python,Django,Django Models,Django Rest Framework,我的老板决定将RESTAPI从*ava迁移到Django。 以前的Java开发人员设计了camelCase中的每个数据库字段,例如userName,以及camelCase中的每个API POST数据 当我将这些重构为DRF时,我得到了以下模型。REST API在camelCase中也接收post数据,因此我必须降低post数据,否则is\u valid()将返回False class Useraccount(models.Model): username = models.CharFie
userName
,以及camelCase中的每个API POST数据
当我将这些重构为DRF时,我得到了以下模型。REST API在camelCase中也接收post数据,因此我必须降低post数据,否则is\u valid()
将返回False
class Useraccount(models.Model):
username = models.CharField(db_column='userName')
REST API请求数据:
{
"userName": "Jenny" # I need lower "userName" to "username"
}
有没有一种方法可以让DRF与大写的POST数据兼容?我不想在每个
APIView
中降低这些用户名
,不幸的是,我认为没有任何简单的方法可以实现这一点。但是,您可以做的是拥有一个写序列化程序,它将为您完成这项工作
class WriteSerializer(serializers.ModelSerializer):
userName = serializers.CharField(source='username', write_only=True)
class Meta:
model = MyModel
fields = ['userName']
class ReadSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ['username']
我不确定,但您也可以在一个模型中手动指定所有字段,并告诉哪些字段仅为write_,哪些字段仅为ready_,这样做,但我认为这也是大量工作