Как кодировать None в данных Dost - PullRequest
0 голосов
/ 10 января 2020

В моем приложении django X - это значение decimalField, обнуляемое. Я получаю эту ошибку, потому что значение X является нулевым в нескольких сценариях ios. Как я могу справиться с этим в ситуациях, когда оно пустое?

    def my_serialization(self):
        return {
            'id': self.app.id,
            ‘name’: self.app.name,
            ‘X’: self.app.x
        }

    def my_test(self):
        payload = self.my_serialization
        response = self.client.post(url, payload)

Это выдает ошибку:

'Невозможно кодировать None как данные POST. Возможно, вы передали 'TypeError: Невозможно кодировать None как данные POST. Вы хотели передать пустую строку или пропустить значение?

Ответы [ 2 ]

1 голос
/ 10 января 2020

Я не уверен, насколько хорошо это будет работать, но вы можете попробовать это?

def set_x(x):
    if x == None:
        return ''
    else:
        return x

def my_serialization(self):
    return {
        'id': self.app.id,
        'name': self.app.name,
        'X': set_x(self.app.x)
    }

def my_test(self):
    payload = self.my_serialization
    response = self.client.post(url, payload)
0 голосов
/ 17 января 2020

Я исправил это, исключив 'X' из my_serialization, когда X равен нулю, и отправив x только если это десятичное число.

def my_serialization(self):
    if self.app.X == None:
        return {
            'id': self.app.id,
            'name': self.app.name
        }
    else:
        return {
            'id': self.app.id,
            ‘name’: self.app.name,
            'X': set_x(self.app.x)
        }

def my_test(self):
    payload = self.my_serialization
    response = self.client.post(url, payload)
...