django rest framework проверяет, получил ли сериализатор объект None - PullRequest
0 голосов
/ 16 ноября 2018

Наша конечная точка может возвращаться из нескольких моделей, у всех есть что-то общее, поэтому они отображаются в единый ответ, например:

{
"reference": "November15-Inbound-1",
"note": null,
"inbound_date": "2018-11-14",
"inbound_lines": [
    {
        "article_code": "VBP_A",
        "quantity": 1
    }
]

}

Теперь возможно, что при выполнениивызов извлечения или обновления, что объект не существует:

try:
    return AppInbound.objects.filter(customer__code=self.customer.code).get(**kwargs)
except AppInbound.DoesNotExist:
    return None

Этот 'None' затем возвращается нашему сериализатору, который дает следующий результат:

{
    "reference": "",
    "note": "",
    "inbound_date": null,
    "inbound_lines": []
}

Есть лиКак я могу проверить, получил ли сериализатор объект None в качестве входных данных?Без необходимости делать определенный код для конечной точки, например:

if serialized_data['reference'] == "":
    raise Http404

1 Ответ

0 голосов
/ 16 ноября 2018

Вы можете переопределить get_initial() в вашем сериализаторе и проверить, является ли экземпляр None.Этот метод отвечает за возврат начального состояния каждого поля.

def get_initial(self):
    if self.instance is None:
        raise Http404
    return super().get_initial()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...