Commit e2b4eddc authored by Claude Paroz's avatar Claude Paroz
Browse files

Used the decorator syntax for properties in django.http

parent dfe63a52
Loading
Loading
Loading
Loading
+22 −22
Original line number Diff line number Diff line
@@ -243,7 +243,12 @@ class HttpRequest(object):
    def is_ajax(self):
        return self.META.get('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest'

    def _set_encoding(self, val):
    @property
    def encoding(self):
        return self._encoding

    @encoding.setter
    def encoding(self, val):
        """
        Sets the encoding used for GET/POST accesses. If the GET or POST
        dictionary has already been created, it is removed and recreated on the
@@ -255,27 +260,22 @@ class HttpRequest(object):
        if hasattr(self, '_post'):
            del self._post

    def _get_encoding(self):
        return self._encoding

    encoding = property(_get_encoding, _set_encoding)

    def _initialize_handlers(self):
        self._upload_handlers = [uploadhandler.load_handler(handler, self)
                                 for handler in settings.FILE_UPLOAD_HANDLERS]

    def _set_upload_handlers(self, upload_handlers):
        if hasattr(self, '_files'):
            raise AttributeError("You cannot set the upload handlers after the upload has been processed.")
        self._upload_handlers = upload_handlers

    def _get_upload_handlers(self):
    @property
    def upload_handlers(self):
        if not self._upload_handlers:
            # If there are no upload handlers defined, initialize them from settings.
            self._initialize_handlers()
        return self._upload_handlers

    upload_handlers = property(_get_upload_handlers, _set_upload_handlers)
    @upload_handlers.setter
    def upload_handlers(self, upload_handlers):
        if hasattr(self, '_files'):
            raise AttributeError("You cannot set the upload handlers after the upload has been processed.")
        self._upload_handlers = upload_handlers

    def parse_file_upload(self, META, post_data):
        """Returns a tuple of (POST QueryDict, FILES MultiValueDict)."""
@@ -397,16 +397,16 @@ class QueryDict(MultiValueDict):
                                force_text(value, encoding, errors='replace'))
        self._mutable = mutable

    def _get_encoding(self):
    @property
    def encoding(self):
        if self._encoding is None:
            self._encoding = settings.DEFAULT_CHARSET
        return self._encoding

    def _set_encoding(self, value):
    @encoding.setter
    def encoding(self, value):
        self._encoding = value

    encoding = property(_get_encoding, _set_encoding)

    def _assert_mutable(self):
        if not self._mutable:
            raise AttributeError("This QueryDict instance is immutable")
@@ -539,7 +539,7 @@ class HttpResponse(object):
        if not content_type:
            content_type = "%s; charset=%s" % (settings.DEFAULT_CONTENT_TYPE,
                    self._charset)
        # content is a bytestring. See _get_content / _set_content.
        # content is a bytestring. See the content property methods.
        self.content = content
        self.cookies = SimpleCookie()
        if status:
@@ -669,7 +669,8 @@ class HttpResponse(object):
        self.set_cookie(key, max_age=0, path=path, domain=domain,
                        expires='Thu, 01-Jan-1970 00:00:00 GMT')

    def _get_content(self):
    @property
    def content(self):
        if self.has_header('Content-Encoding'):
            def make_bytes(value):
                if isinstance(value, int):
@@ -681,7 +682,8 @@ class HttpResponse(object):
            return b''.join(make_bytes(e) for e in self._container)
        return b''.join(smart_bytes(e, self._charset) for e in self._container)

    def _set_content(self, value):
    @content.setter
    def content(self, value):
        if hasattr(value, '__iter__') and not isinstance(value, (bytes, six.string_types)):
            self._container = value
            self._base_content_is_iter = True
@@ -689,8 +691,6 @@ class HttpResponse(object):
            self._container = [value]
            self._base_content_is_iter = False

    content = property(_get_content, _set_content)

    def __iter__(self):
        self._iterator = iter(self._container)
        return self
+7 −7
Original line number Diff line number Diff line
@@ -102,7 +102,7 @@ class SimpleTemplateResponse(HttpResponse):
        """
        retval = self
        if not self._is_rendered:
            self._set_content(self.rendered_content)
            self.content = self.rendered_content
            for post_callback in self._post_render_callbacks:
                newretval = post_callback(retval)
                if newretval is not None:
@@ -119,20 +119,20 @@ class SimpleTemplateResponse(HttpResponse):
                                          'rendered before it can be iterated over.')
        return super(SimpleTemplateResponse, self).__iter__()

    def _get_content(self):
    @property
    def content(self):
        if not self._is_rendered:
            raise ContentNotRenderedError('The response content must be '
                                          'rendered before it can be accessed.')
        return super(SimpleTemplateResponse, self)._get_content()
        return super(SimpleTemplateResponse, self).content

    def _set_content(self, value):
    @content.setter
    def content(self, value):
        """Sets the content for the response
        """
        super(SimpleTemplateResponse, self)._set_content(value)
        HttpResponse.content.fset(self, value)
        self._is_rendered = True

    content = property(_get_content, _set_content)


class TemplateResponse(SimpleTemplateResponse):
    rendering_attrs = SimpleTemplateResponse.rendering_attrs + \