Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django rest框架datetimefield赢得';t验证空字符串_Django_Django Rest Framework - Fatal编程技术网

Django rest框架datetimefield赢得';t验证空字符串

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

我开发了一个网络钩子来接收银行的交易。在将数据保存到数据库之前,我使用Django rest框架验证数据。然而,我的银行为字段“已结算”传递了一个空白字符串,Django rest框架似乎无法验证datetime字段中具有空白值的表单。null是可以的,但空字符串不是。怎么办

我的银行通过的JSON:

{
    "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”对象没有属性“获取内部值”