Python Django 休息框架 Post 获取序列化器
Python Django rest framework Post Get Serializer
我是 Django rest 框架序列化程序的新手。
我有这个用于 GET 请求的序列化程序。
class MemberChargeSerializer(serializers.ModelSerializer):
chargeTypeName = serializers.CharField(
source='chargeType.memberChargeTypeName',
read_only=True)
firstName = serializers.CharField(
source='user.first_name',
read_only=True)
lastName = serializers.CharField(
source='user.last_name',
read_only=True)
class Meta:
model = MemberCharge
fields = ('id', 'chargeTypeName', 'firstName', 'lastName', 'amount',
'amountPaid', 'fullyPaid', 'date', 'void')
效果很好。现在,我需要做一些事情来处理 POST
请求。我不会在 request.data
中提交以下字段:id
、firstName
、lastName
、fullyPaid
。我正在考虑实现另一个序列化程序来处理我的 POST
请求。这是正确的方法吗?请记住,我将提交其他字段,而不是使用某些字段。
谢谢。
序列化程序可用于 get 和 post request.It 基本上取决于模型字段选项。
对于post请求只使用字段"id"、"firstName"、"lastName"、"fullyPaid",你的其他字段必须是可选的,然后只您将能够调用序列化程序的满足 is_valid 方法。
例如。
对于其他字段使用 blank = True,这将使字段成为可选字段
chargeTypeName = models.CharField(max_length=6, blank=True)
我是 Django rest 框架序列化程序的新手。
我有这个用于 GET 请求的序列化程序。
class MemberChargeSerializer(serializers.ModelSerializer):
chargeTypeName = serializers.CharField(
source='chargeType.memberChargeTypeName',
read_only=True)
firstName = serializers.CharField(
source='user.first_name',
read_only=True)
lastName = serializers.CharField(
source='user.last_name',
read_only=True)
class Meta:
model = MemberCharge
fields = ('id', 'chargeTypeName', 'firstName', 'lastName', 'amount',
'amountPaid', 'fullyPaid', 'date', 'void')
效果很好。现在,我需要做一些事情来处理 POST
请求。我不会在 request.data
中提交以下字段:id
、firstName
、lastName
、fullyPaid
。我正在考虑实现另一个序列化程序来处理我的 POST
请求。这是正确的方法吗?请记住,我将提交其他字段,而不是使用某些字段。
谢谢。
序列化程序可用于 get 和 post request.It 基本上取决于模型字段选项。
对于post请求只使用字段"id"、"firstName"、"lastName"、"fullyPaid",你的其他字段必须是可选的,然后只您将能够调用序列化程序的满足 is_valid 方法。
例如。
对于其他字段使用 blank = True,这将使字段成为可选字段
chargeTypeName = models.CharField(max_length=6, blank=True)