擅长:python、mysql、java
<p>您想要引发的<code>rest_framework</code>异常是<code>PermissionDenied</code>返回一个<strong>403</strong>,所以请这样做而不是<code>get_object_or_404</code>。在</p>
<p>应用所需的逻辑,并在用户不应位于该DetailView端点时引发异常。在</p>
<pre><code>from rest_framework.exceptions import PermissionDenied
class UserViewSet(viewsets.ViewSet):
model = User
def retrieve(self, request, pk=None):
try:
return self.model.objects.filter(foo='bar').get(pk=pk)
except User.DoestNotExist:
# can't find the User based upon the filter foo='bar'
# that represents a object permissions filter
raise PermissionDenied("message to accompany the 403 error if desired")
</code></pre>