我正在努力如何使用应该像验证步骤一样的可重用方法来构建基于类的视图。我不想引发实际错误但返回 json 消息(无论是成功还是失败)
class View(object):
ERRORS = (
('error_1', 'Enter an integer'),
('error_2', 'Enter a valid integer'),
('error_3', 'Enter a positive integer'),
)
def get_number(request):
number = request.GET.get('number', None)
return number
else:
return 'error_1', ERRORS.get('error_1')
def validate_number(number):
try:
number = int(number)
except (TypeError, ValueError):
return 'error_2', ERRORS.get('error_2')
if number > 0:
return number
else:
return 'error_3', ERRORS.get('error_3')
def get(request, *args, **kwargs):
# pseudo code should run reusable method checks
# then return {'number':number} or {'error_1', 'msg'}
def post(request, *args, **kwargs):
# pseudo code should run reusable method checks
# then return {'number':number} or {'error_1', 'msg'}
问题是我应该如何“摆脱”验证步骤。我试图从验证方法返回 JsonResponse 但它会在实际返回任何导致错误的响应之前继续 get 或 post 方法。我可以设置一个类错误和消息,但这将意味着在 get 或 post 方法中进行大量 if/else 检查。
我基本上是在寻找一种类架构,它可以让我运行可能有一个或两个返回值的验证方法。我想我可能必须创建自己的错误处理程序,但我没有一个明确的例子。