如何在django-rest-framework 3.0序列化程序中检查OPTIONS请求?

Ade*_*laN 4 rest serialization http django-rest-framework

我试图创建具有DRF 3.0动态字段串行,作为解释在这里。我应该为POST,GET和OPTIONS请求返回不同的字段。

但是,似乎当我向服务器发出OPTIONS请求时,序列化器会在中以'POST'调用request.method。我也研究了request._method,但这是同一回事。那么,如何区分“ POST”和“ OPTIONS”?

谢谢。

Bar*_*art 5

我遇到了同样的问题。首先不明白为什么,启用了我的自定义权限类后,我没有在元数据中收到有关ACTIONS的任何信息。AdelaN在这里为我指明了正确的方向。

作为解决方案,我在权限类中添加了一个附加的“ if”,以检查request._request.method是否为OPTIONS,如下所示:

    if request.method == 'POST' or request.method == 'DELETE':
        # Make an exception for redirected OPTIONS requests
        # See: http://stackoverflow.com/questions/30460409/how-do-i-check-for-options-request-in-django-rest-framework-3-0-serializer
        if request._request.method == "OPTIONS":
            return True 
Run Code Online (Sandbox Code Playgroud)

希望这对任何人有帮助。