Django rest框架datetimefield赢得';t验证空字符串
我开发了一个网络钩子来接收银行的交易。在将数据保存到数据库之前,我使用Django rest框架验证数据。然而,我的银行为字段“已结算”传递了一个空白字符串,Django rest框架似乎无法验证datetime字段中具有空白值的表单。null是可以的,但空字符串不是。怎么办 我的银行通过的JSON:Django rest框架datetimefield赢得';t验证空字符串,django,django-rest-framework,Django,Django Rest Framework,我开发了一个网络钩子来接收银行的交易。在将数据保存到数据库之前,我使用Django rest框架验证数据。然而,我的银行为字段“已结算”传递了一个空白字符串,Django rest框架似乎无法验证datetime字段中具有空白值的表单。null是可以的,但空字符串不是。怎么办 我的银行通过的JSON: { "type": "transaction.created", "data": { "account_id": "acc_00008gju41AHyfLUzBUk
{
"type": "transaction.created",
"data": {
"account_id": "acc_00008gju41AHyfLUzBUk8A",
"amount": -350,
"created": "2015-09-04T14:28:40Z",
"currency": "GBP",
"description": "Ozone Coffee Roasters",
"id": "tx_00008zjky19HyFLAzlUk7t",
"category": "eating_out",
"is_load": false,
"settled": "",
"merchant": {
"address": {
"address": "98 Southgate Road",
"city": "London",
"country": "GB",
"latitude": 51.54151,
"longitude": -0.08482400000002599,
"postcode": "N1 3JD",
"region": "Greater London"
},
"created": "2015-08-22T12:20:18Z",
"group_id": "grp_00008zIcpbBOaAr7TTP3sv",
"id": "merch_00008zIcpbAKe8shBxXUtl",
"logo": "https://pbs.twimg.com/profile_images/527043602623389696/68_SgUWJ.jpeg",
"emoji": "I think It would be done by trying this
settled = serializers.DateTimeField(required=False, allow_null=True , blank = True)
You need to override to_internal_value
:
class DataSerializer(serializers.Serializer):
def to_internal_value(self, data):
if data.get('settled') == '':
data['settled'] = None
return super().to_internal_value(data)
{
“类型”:“transaction.created”,
“数据”:{
“账户id”:“acc_00008gju41AHyfLUzBUk8A”,
“金额”:-350,
“已创建”:“2015-09-04T14:28:40Z”,
“货币”:“英镑”,
“说明”:“臭氧咖啡烘焙器”,
“id”:“tx_00008zjky19HyFLAzlUk7t”,
“类别”:“外出就餐”,
“is_load”:false,
“已结算”:“已结算”,
“商人”:{
“地址”:{
“地址”:“南门路98号”,
“城市”:“伦敦”,
“国家”:“GB”,
“纬度”:51.54151,
“经度”:-0.08482400000002599,
“邮政编码”:“N1 3JD”,
“地区”:“大伦敦”
},
“已创建”:“2015-08-22T12:20:18Z”,
“组id”:“grp\U 00008ZICPBOAAR7TTP3SV”,
“id”:“merch_00008zIcpbAKe8shBxXUtl”,
“徽标”:https://pbs.twimg.com/profile_images/527043602623389696/68_SgUWJ.jpeg",
“表情符号”:“我想可以试试这个
settled=serializers.DateTimeField(required=False,allow\u null=True,blank=True)
我想可以通过尝试这个方法来完成
settled=serializers.datetime字段(必需=False,允许null=True,blank=True)
您需要将重写为内部值:
您需要将重写为内部值
:
我想你的问题可以通过重写到内部值来解决。你看到了吗?我想你的问题可以通过重写到内部值来解决。你看到了Try allow\u blank=TrueTry allow\u blank=TrueHi吗?我试过了,但我得到了:AttributeError:“super”对象没有属性“get\u internal\u value”嗨,我试过了,但得到了:AttributeError:“super”对象没有属性“获取内部值”