【发布时间】:2017-07-25 18:05:26
【问题描述】:
在这里:http://www.django-rest-framework.org/api-guide/viewsets/#modelviewset 它说“ModelViewSet 类提供的操作是 .list()、.retrieve()、.create()、.update()、.partial_update() 和 .destroy() 。”
在这里:http://www.django-rest-framework.org/api-guide/serializers/#modelserializer 它说“ModelSerializer 类与常规 Serializer 类相同,除了:它包括 .create() 和 .update() 的简单默认实现。”
1) 假设有一个 Viewset UserViewSet 和 router user 和 serializer UserSerializer。如果我将POST 发送到/user/,它会调用UserViewSet 的create() 还是UserSerializer 的create()?
2) 假设UserViewSet 有这个权限:
class NoCreate(permissions.BasePermission):
"""
No one can create this object.
"""
message = 'You do not have permission to complete the action you are trying to perform.'
def has_permission(self, request, view):
if view.action == "create":
return False
return True
如果我将POST 发送到/user/,UserSerializer 的create() 是否仍会被调用?
【问题讨论】:
标签: django serialization django-rest-framework django-rest-viewsets