diff options
| author | Tom Christie | 2012-02-23 09:21:01 +0000 |
|---|---|---|
| committer | Tom Christie | 2012-02-23 09:21:01 +0000 |
| commit | e15494a172f19d9388c0888fb566907aad95de0c (patch) | |
| tree | d7c8f83fe93a3bade46ac5533f5bc8121a3cf332 /djangorestframework/resources.py | |
| parent | 2b59df004a5bb7449aa4c07277ac846c330a79f7 (diff) | |
| download | django-rest-framework-e15494a172f19d9388c0888fb566907aad95de0c.tar.bz2 | |
Remove InstanceMixin auto-url magicks.
Diffstat (limited to 'djangorestframework/resources.py')
| -rw-r--r-- | djangorestframework/resources.py | 55 |
1 files changed, 3 insertions, 52 deletions
diff --git a/djangorestframework/resources.py b/djangorestframework/resources.py index 71c4d2b9..f170eb45 100644 --- a/djangorestframework/resources.py +++ b/djangorestframework/resources.py @@ -1,10 +1,7 @@ from django import forms -from django.core.urlresolvers import get_urlconf, get_resolver, NoReverseMatch -from django.db import models from djangorestframework.response import ErrorResponse -from djangorestframework.reverse import reverse -from djangorestframework.serializer import Serializer, _SkipField +from djangorestframework.serializer import Serializer from djangorestframework.utils import as_tuple @@ -20,7 +17,7 @@ class BaseResource(Serializer): def __init__(self, view=None, depth=None, stack=[], **kwargs): super(BaseResource, self).__init__(depth, stack, **kwargs) self.view = view - self.request = view.request + self.request = getattr(view, 'request', None) def validate_request(self, data, files=None): """ @@ -224,9 +221,6 @@ class ModelResource(FormResource): Also provides a :meth:`get_bound_form` method which may be used by some renderers. """ - # Auto-register new ModelResource classes into _model_to_resource - #__metaclass__ = _RegisterModelResource - form = None """ The form class that should be used for request validation. @@ -260,7 +254,7 @@ class ModelResource(FormResource): The list of fields to exclude. This is only used if :attr:`fields` is not set. """ - include = ('url',) + include = () """ The list of extra fields to include. This is only used if :attr:`fields` is not set. """ @@ -323,49 +317,6 @@ class ModelResource(FormResource): return form() - def url(self, instance): - """ - Attempts to reverse resolve the url of the given model *instance* for this resource. - - Requires a ``View`` with :class:`mixins.InstanceMixin` to have been created for this resource. - - This method can be overridden if you need to set the resource url reversing explicitly. - """ - - if not hasattr(self, 'view_callable'): - raise _SkipField - - # dis does teh magicks... - urlconf = get_urlconf() - resolver = get_resolver(urlconf) - - possibilities = resolver.reverse_dict.getlist(self.view_callable[0]) - for tuple_item in possibilities: - possibility = tuple_item[0] - # pattern = tuple_item[1] - # Note: defaults = tuple_item[2] for django >= 1.3 - for result, params in possibility: - - #instance_attrs = dict([ (param, getattr(instance, param)) for param in params if hasattr(instance, param) ]) - - instance_attrs = {} - for param in params: - if not hasattr(instance, param): - continue - attr = getattr(instance, param) - if isinstance(attr, models.Model): - instance_attrs[param] = attr.pk - else: - instance_attrs[param] = attr - - try: - return reverse(self.view_callable[0], - kwargs=instance_attrs, - request=self.view.request) - except NoReverseMatch: - pass - raise _SkipField - @property def _model_fields_set(self): """ |
