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 チェックを行うことを意味します。

私は基本的に、1 つまたは 2 つの戻り値を持つ可能性のある検証メソッドを実行できるクラス アーキテクチャを探しています。独自のエラー ハンドラを作成する必要があるかもしれませんが、明確な例がありません。

4

1 に答える 1