mirror of
https://github.com/Hopiu/django-model-utils.git
synced 2026-03-17 04:10:24 +00:00
Remove version checks for django<1.8.
Support for older versions of django was dropped in 3.0.0.
This commit is contained in:
parent
6d2ba63387
commit
0fc0b44c95
3 changed files with 18 additions and 55 deletions
|
|
@ -48,11 +48,10 @@ class InheritanceIterable(ModelIterable):
|
|||
class InheritanceQuerySetMixin(object):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(InheritanceQuerySetMixin, self).__init__(*args, **kwargs)
|
||||
if django.VERSION > (1, 8):
|
||||
self._iterable_class = InheritanceIterable
|
||||
self._iterable_class = InheritanceIterable
|
||||
|
||||
def select_subclasses(self, *subclasses):
|
||||
levels = self._get_maximum_depth()
|
||||
levels = None
|
||||
calculated_subclasses = self._get_subclasses_recurse(
|
||||
self.model, levels=levels)
|
||||
# if none were passed in, we can just short circuit and select all
|
||||
|
|
@ -151,12 +150,9 @@ class InheritanceQuerySetMixin(object):
|
|||
recursively, returning a `list` of strings representing the
|
||||
relations for select_related
|
||||
"""
|
||||
if django.VERSION < (1, 8):
|
||||
related_objects = model._meta.get_all_related_objects()
|
||||
else:
|
||||
related_objects = [
|
||||
f for f in model._meta.get_fields()
|
||||
if isinstance(f, OneToOneRel)]
|
||||
related_objects = [
|
||||
f for f in model._meta.get_fields()
|
||||
if isinstance(f, OneToOneRel)]
|
||||
|
||||
rels = [
|
||||
rel for rel in related_objects
|
||||
|
|
@ -199,10 +195,7 @@ class InheritanceQuerySetMixin(object):
|
|||
related = parent_link.remote_field
|
||||
ancestry.insert(0, related.get_accessor_name())
|
||||
if levels or levels is None:
|
||||
if django.VERSION < (1, 8):
|
||||
parent_model = related.parent_model
|
||||
else:
|
||||
parent_model = related.model
|
||||
parent_model = related.model
|
||||
parent_link = parent_model._meta.get_ancestor_link(
|
||||
self.model)
|
||||
else:
|
||||
|
|
@ -230,17 +223,6 @@ class InheritanceQuerySetMixin(object):
|
|||
def get_subclass(self, *args, **kwargs):
|
||||
return self.select_subclasses().get(*args, **kwargs)
|
||||
|
||||
def _get_maximum_depth(self):
|
||||
"""
|
||||
Under Django versions < 1.6, to avoid triggering
|
||||
https://code.djangoproject.com/ticket/16572 we can only look
|
||||
as far as children.
|
||||
"""
|
||||
levels = None
|
||||
if django.VERSION < (1, 6, 0):
|
||||
levels = 1
|
||||
return levels
|
||||
|
||||
|
||||
class InheritanceQuerySet(InheritanceQuerySetMixin, QuerySet):
|
||||
pass
|
||||
|
|
|
|||
|
|
@ -97,35 +97,19 @@ class FieldInstanceTracker(object):
|
|||
def _get_field_name(self):
|
||||
return self.field.name
|
||||
|
||||
if django.VERSION >= (1, 8):
|
||||
self.instance._deferred_fields = self.instance.get_deferred_fields()
|
||||
for field in self.instance._deferred_fields:
|
||||
if django.VERSION >= (1, 10):
|
||||
field_obj = getattr(self.instance.__class__, field)
|
||||
else:
|
||||
field_obj = self.instance.__class__.__dict__.get(field)
|
||||
if isinstance(field_obj, FileDescriptor):
|
||||
field_tracker = FileDescriptorTracker(field_obj.field)
|
||||
setattr(self.instance.__class__, field, field_tracker)
|
||||
else:
|
||||
field_tracker = DeferredAttributeTracker(
|
||||
field_obj.field_name, None)
|
||||
setattr(self.instance.__class__, field, field_tracker)
|
||||
else:
|
||||
for field in self.fields:
|
||||
self.instance._deferred_fields = self.instance.get_deferred_fields()
|
||||
for field in self.instance._deferred_fields:
|
||||
if django.VERSION >= (1, 10):
|
||||
field_obj = getattr(self.instance.__class__, field)
|
||||
else:
|
||||
field_obj = self.instance.__class__.__dict__.get(field)
|
||||
if isinstance(field_obj, DeferredAttribute):
|
||||
self.instance._deferred_fields.add(field)
|
||||
|
||||
# Django 1.4
|
||||
if django.VERSION >= (1, 5):
|
||||
model = None
|
||||
else:
|
||||
model = field_obj.model_ref()
|
||||
|
||||
field_tracker = DeferredAttributeTracker(
|
||||
field_obj.field_name, model)
|
||||
setattr(self.instance.__class__, field, field_tracker)
|
||||
if isinstance(field_obj, FileDescriptor):
|
||||
field_tracker = FileDescriptorTracker(field_obj.field)
|
||||
setattr(self.instance.__class__, field, field_tracker)
|
||||
else:
|
||||
field_tracker = DeferredAttributeTracker(
|
||||
field_obj.field_name, None)
|
||||
setattr(self.instance.__class__, field, field_tracker)
|
||||
|
||||
|
||||
class FieldTracker(object):
|
||||
|
|
|
|||
|
|
@ -115,9 +115,6 @@ class InheritanceManagerTests(TestCase):
|
|||
"inheritancemanagertestchild2").get(pk=self.child1.pk)
|
||||
obj.inheritancemanagertestchild1
|
||||
|
||||
def test_version_determining_any_depth(self):
|
||||
self.assertIsNone(self.get_manager().all()._get_maximum_depth())
|
||||
|
||||
def test_manually_specifying_parent_fk_including_grandchildren(self):
|
||||
"""
|
||||
given a Model which inherits from another Model, but also declares
|
||||
|
|
|
|||
Loading…
Reference in a new issue