我正在开发一个计费/银行系统。有两种模式:帐户和交易。创建交易g时,我要验证交易金额<帐户余额。我使用django-admin和DRF。在这两种情况下,用户都应该看到验证错误消息。在当前的实现中,用户看到响应代码500。行锁定后是否有更好的方法来验证事务?
$foo = array('open', 'closed');
$open = 1;
$closed = 5;
shuffle($foo);
echo $$foo;
Is this ok to use? as $foo will return 1 or 5 which is kind of what i want.
答案 0 :(得分:0)
如果您需要将验证错误返回给用户,则最好在DRF /视图端进行处理。例如,如果您使用的是DRF的视图集,则重写perform_create
方法-将交易的创建包装在try-except块中,捕获此ValueError
并返回400响应:
def perform_create(self, serializer):
try:
instance = serializer.save()
except ValueError:
raise ValidationError(...)
顺便说一句,在这里引发/捕获一些自定义异常比使用ValueError
更为安全,这样我们就不会在其他错误情况下误报“余额不足”。