首页 > 解决方案 > 将Django视图返回数据放入响应数据

问题描述

我有一个基于函数的视图,其中有许多检查并根据检查结果返回数据。所以我不想每次都手动将我的数据包装到Response对象中。有没有办法在 Django Rest Framework 中自动将函数返回值放入 OK 响应数据中?例如,有一个像这样的有效视图:

@api_view(['GET'])
def pre_reg_countries(request):
    if some_condition:
        return data_1  # instead of returning Response(data=data_1)
    else:
        if another condition:
            return data_2
        else:
            return []

PS这个想法来自Java Spring框架。

标签: pythondjangodjango-rest-framework

解决方案


如果 Django 没有提供一些内置的解决方案,像这样的装饰器可以解决问题:

def responsify(view_method):
    def add_response(*args, **kwargs):
        data = view_method(*args, **kwargs)
        return Response(data)
    return add_response

推荐阅读