aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/resources.py
diff options
context:
space:
mode:
authorTom Christie2012-02-23 09:21:01 +0000
committerTom Christie2012-02-23 09:21:01 +0000
commite15494a172f19d9388c0888fb566907aad95de0c (patch)
treed7c8f83fe93a3bade46ac5533f5bc8121a3cf332 /djangorestframework/resources.py
parent2b59df004a5bb7449aa4c07277ac846c330a79f7 (diff)
downloaddjango-rest-framework-e15494a172f19d9388c0888fb566907aad95de0c.tar.bz2
Remove InstanceMixin auto-url magicks.
Diffstat (limited to 'djangorestframework/resources.py')
-rw-r--r--djangorestframework/resources.py55
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):
"""