1

我正在努力如何使用应该像验证步骤一样的可重用方法来构建基于类的视图。我不想引发实际错误但返回 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 检查。

我基本上是在寻找一种类架构,它可以让我运行可能有一个或两个返回值的验证方法。我想我可能必须创建自己的错误处理程序,但我没有一个明确的例子。

4

1 回答 1

2

您可以从 Django 的表单框架中获得一些灵感,并引发某种验证异常。然后一个单独的“验证”方法可以调用所有验证函数,捕获任何异常,并输出正确的 JSON 结果。

或者,您可以直接使用 Django 表单,这可能更简单。

于 2013-05-01T11:06:11.007 回答