Python 关于django/restframework请求
这是我的看法:Python 关于django/restframework请求,python,django,django-rest-framework,Python,Django,Django Rest Framework,这是我的看法: class Comments(ListCreateAPIView): queryset = models.NewsComment.objects filter_backends = [CommentsFilterBackend] http_method_names = ["get", "post"] def get_serializer(self, *args, **kwargs): if self.request.method = "ge
class Comments(ListCreateAPIView):
queryset = models.NewsComment.objects
filter_backends = [CommentsFilterBackend]
http_method_names = ["get", "post"]
def get_serializer(self, *args, **kwargs):
if self.request.method = "get":
return Myserializer
我想知道为什么self.request可以调用“方法”。它不是封装的请求新对象吗?本机请求对象封装在请求obj中。为什么self.request可以调用request.method attrs
答案在中,更具体地说是在\uu getattr\uuu
方法中(第410行):
这是Python的“神奇方法”之一,您可以阅读更多有关它的信息。aha,很高兴能提供帮助。如果你认为答案解决了你的疑虑,请考虑接受答案。
def __getattr__(self, attr):
"""
If an attribute does not exist on this instance, then we also attempt
to proxy it to the underlying HttpRequest object.
"""
try:
return getattr(self._request, attr)
except AttributeError:
return self.__getattribute__(attr)