diff options
| author | tom christie tom@tomchristie.com | 2010-12-30 23:29:01 +0000 |
|---|---|---|
| committer | tom christie tom@tomchristie.com | 2010-12-30 23:29:01 +0000 |
| commit | c56e48f52e26a81d7a9f81fd74b0ea46d5434a90 (patch) | |
| tree | 98a2d33f9d23cbcbe77053a6ec6e1d3540442e99 /src/rest/emitters.py | |
| parent | a78f57847592fbaba9b483e2ace1591c9f295c71 (diff) | |
| download | django-rest-framework-c56e48f52e26a81d7a9f81fd74b0ea46d5434a90.tar.bz2 | |
Add parsers, form validation, etc...
Diffstat (limited to 'src/rest/emitters.py')
| -rw-r--r-- | src/rest/emitters.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/rest/emitters.py b/src/rest/emitters.py index ee8ca57f..ce126723 100644 --- a/src/rest/emitters.py +++ b/src/rest/emitters.py @@ -1,9 +1,10 @@ -from django.template import Context, loader +from django.template import RequestContext, loader from django.core.handlers.wsgi import STATUS_CODE_TEXT import json class BaseEmitter(object): - def __init__(self, resource, status, headers): + def __init__(self, resource, request, status, headers): + self.request = request self.resource = resource self.status = status self.headers = headers @@ -12,16 +13,23 @@ class BaseEmitter(object): return output class TemplatedEmitter(BaseEmitter): + template = None + def emit(self, output): content = json.dumps(output, indent=4) template = loader.get_template(self.template) - context = Context({ + context = RequestContext(self.request, { 'content': content, 'status': self.status, 'reason': STATUS_CODE_TEXT.get(self.status, ''), 'headers': self.headers, 'resource_name': self.resource.__class__.__name__, - 'resource_doc': self.resource.__doc__ + 'resource_doc': self.resource.__doc__, + 'create_form': self.resource.create_form and self.resource.create_form() or None, + 'update_form': self.resource.update_form and self.resource.update_form() or None, + 'allowed_methods': self.resource.allowed_methods, + 'request': self.request, + 'resource': self.resource, }) return template.render(context) |
