我们的端点可以从多个模型返回,所有模型都有共同点,因此它们被映射为统一的响应,例如:
{
"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
然后将此“无”返回到我们的序列化器,它产生以下结果:
{
"reference": "",
"note": "",
"inbound_date": null,
"inbound_lines": []
}
有没有一种方法可以检查序列化程序是否接收到None对象作为输入?无需为每个端点执行特定的代码,例如:
if serialized_data['reference'] == "":
raise Http404
答案 0 :(得分:0)
您可以在序列化程序中覆盖get_initial()
,然后检查实例是否为None
。此方法负责返回每个字段的初始状态。
def get_initial(self):
if self.instance is None:
raise Http404
return super().get_initial()