Moj*_*and 6 python django django-rest-framework
self.action是None在get_permissions()方法中。
当调用不存在的 url 时,DRF 不会抛出 404 错误。这就是为什么行动在某种程度上是None有 get_permissions()方法的。
这里是ModelViewSet:
class UserViewSet(ModelViewSet):
serializer_classes = {
"list": UserSerializer,
"retrieve": UserSerializer,
"create": UserSerializer,
"update": UserUpdateSerializer,
}
http_method_names = ["get", "post", "put"]
def get_serializer_class(self):
return self.serializer_classes[self.action]
def get_permissions(self):
if self.action is None:
# here error raises when i call '.../accounts/blablabla/` endpoint in post request instead of 404?
raise AssertionError("self.action cannot be None")
if self.action in ["list", "retrieve"]:
return [IsAuthenticated(), IsAdmin()]
else:
return [AllowAny()]
Run Code Online (Sandbox Code Playgroud)
这是我在 github 中的讨论链接#8199。
| 归档时间: |
|
| 查看次数: |
741 次 |
| 最近记录: |