resources: bug fix + better error messages

This commit is contained in:
Sébastien Piquemal 2012-01-05 22:52:28 +02:00
parent 36b89cd367
commit ae48937334

View File

@ -536,34 +536,33 @@ class ModelResource(FormResource):
""" """
Return the model class for this resource. Return the model class for this resource.
""" """
if hasattr(self, 'model'): model = getattr(self, 'model', None)
return self.model if model is None:
elif hasattr(self.view, 'model'): model = getattr(self.view, 'model', None)
return self.view.model if model is None:
else: raise ImproperlyConfigured(u"%(cls)s is missing a model. Define "
raise ImproperlyConfigured(u"%(cls)s is missing a model. Define " u"%(cls)s.model." % {
u"%(cls)s.model." % { 'cls': self.__class__
'cls': self.__class__ })
}) return model
def get_queryset(self): def get_queryset(self):
""" """
Return the queryset that should be used when retrieving or listing Return the queryset that should be used when retrieving or listing
instances. instances.
""" """
if hasattr(self, 'queryset'): queryset = getattr(self, 'queryset', None)
queryset = self.queryset if queryset is None:
elif hasattr (self.view, 'queryset'): queryset = getattr(self.view, 'queryset', None)
queryset = self.view.queryset if queryset is None:
else: try:
model = self.get_model() model = self.get_model()
if model: except ImproperlyConfigured:
raise ImproperlyConfigured(u"%(cls)s is missing a queryset. Define "
u"%(cls)s.model or %(cls)s.queryset." % {
'cls': self.__class__
})
queryset = model._default_manager.all() queryset = model._default_manager.all()
else:
raise ImproperlyConfigured(u"%(cls)s is missing a queryset. Define "
u"%(cls)s.model or %(cls)s.queryset." % {
'cls': self.__class__
})
return queryset._clone() return queryset._clone()
def get_ordering(self): def get_ordering(self):