diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-03-30 06:46:36 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-03-30 06:46:36 +0000 |
| commit | 3c6609ac0cbf367f2c9f166c0001d4d18a7e9ca2 (patch) | |
| tree | b36bead3c2370c0778b7fba4993915b448839e6e | |
| parent | 179b5b8422dcf4178376456c4c61ac3f2f46ee45 (diff) | |
Refactored the HttpResponse sub-classes so that adding a subclass that only
changes the HTTP status code requires less code (no need to duplicate the
__init__ method).
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4865 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/http/__init__.py | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/django/http/__init__.py b/django/http/__init__.py index 0ae90c4921..eb28168260 100644 --- a/django/http/__init__.py +++ b/django/http/__init__.py @@ -155,6 +155,9 @@ def parse_cookie(cookie): class HttpResponse(object): "A basic HTTP response, with content and dictionary-accessed headers" + + status_code = 200 + def __init__(self, content='', mimetype=None): from django.conf import settings self._charset = settings.DEFAULT_CHARSET @@ -168,7 +171,6 @@ class HttpResponse(object): self._is_string = True self.headers = {'Content-Type': mimetype} self.cookies = SimpleCookie() - self.status_code = 200 def __str__(self): "Full HTTP message, including headers" @@ -254,47 +256,46 @@ class HttpResponse(object): return sum([len(chunk) for chunk in self._container]) class HttpResponseRedirect(HttpResponse): + status_code = 302 + def __init__(self, redirect_to): HttpResponse.__init__(self) self['Location'] = quote(redirect_to, safe=RESERVED_CHARS) - self.status_code = 302 class HttpResponsePermanentRedirect(HttpResponse): + status_code = 301 + def __init__(self, redirect_to): HttpResponse.__init__(self) self['Location'] = quote(redirect_to, safe=RESERVED_CHARS) - self.status_code = 301 class HttpResponseNotModified(HttpResponse): - def __init__(self): - HttpResponse.__init__(self) - self.status_code = 304 + status_code = 304 class HttpResponseNotFound(HttpResponse): - def __init__(self, *args, **kwargs): - HttpResponse.__init__(self, *args, **kwargs) - self.status_code = 404 + status_code = 404 class HttpResponseForbidden(HttpResponse): - def __init__(self, *args, **kwargs): - HttpResponse.__init__(self, *args, **kwargs) - self.status_code = 403 + status_code = 403 class HttpResponseNotAllowed(HttpResponse): + status_code = 405 + def __init__(self, permitted_methods): HttpResponse.__init__(self) self['Allow'] = ', '.join(permitted_methods) - self.status_code = 405 class HttpResponseGone(HttpResponse): + status_code = 410 + def __init__(self, *args, **kwargs): HttpResponse.__init__(self, *args, **kwargs) - self.status_code = 410 class HttpResponseServerError(HttpResponse): + status_code = 500 + def __init__(self, *args, **kwargs): HttpResponse.__init__(self, *args, **kwargs) - self.status_code = 500 def get_host(request): "Gets the HTTP host from the environment or request headers." |
