mirror of
https://github.com/Hopiu/django-model-utils.git
synced 2026-03-16 20:00:23 +00:00
remove dead init_deferred_fields method
This commit is contained in:
parent
0ec4ac5e38
commit
b2a10bd96c
1 changed files with 1 additions and 46 deletions
|
|
@ -3,8 +3,7 @@ from functools import wraps
|
|||
|
||||
from django.core.exceptions import FieldError
|
||||
from django.db import models
|
||||
from django.db.models.fields.files import FieldFile, FileDescriptor
|
||||
from django.db.models.query_utils import DeferredAttribute
|
||||
from django.db.models.fields.files import FieldFile
|
||||
|
||||
|
||||
class LightStateFieldFile(FieldFile):
|
||||
|
|
@ -40,26 +39,6 @@ def lightweight_deepcopy(value):
|
|||
return deepcopy(value)
|
||||
|
||||
|
||||
class DescriptorMixin:
|
||||
tracker_instance = None
|
||||
|
||||
def __get__(self, instance, owner):
|
||||
if instance is None:
|
||||
return self
|
||||
was_deferred = False
|
||||
field_name = self._get_field_name()
|
||||
if field_name in instance._deferred_fields:
|
||||
instance._deferred_fields.remove(field_name)
|
||||
was_deferred = True
|
||||
value = super().__get__(instance, owner)
|
||||
if was_deferred:
|
||||
self.tracker_instance.saved_data[field_name] = lightweight_deepcopy(value)
|
||||
return value
|
||||
|
||||
def _get_field_name(self):
|
||||
return self.field_name
|
||||
|
||||
|
||||
class DescriptorWrapper:
|
||||
|
||||
def __init__(self, field_name, descriptor, tracker_attname):
|
||||
|
|
@ -271,30 +250,6 @@ class FieldInstanceTracker:
|
|||
if self.has_changed(field)
|
||||
}
|
||||
|
||||
def init_deferred_fields(self):
|
||||
self.instance._deferred_fields = set()
|
||||
if hasattr(self.instance, '_deferred') and not self.instance._deferred:
|
||||
return
|
||||
|
||||
class DeferredAttributeTracker(DescriptorMixin, DeferredAttribute):
|
||||
tracker_instance = self
|
||||
|
||||
class FileDescriptorTracker(DescriptorMixin, FileDescriptor):
|
||||
tracker_instance = self
|
||||
|
||||
def _get_field_name(self):
|
||||
return self.field.name
|
||||
|
||||
self.instance._deferred_fields = self.instance.get_deferred_fields()
|
||||
for field in self.instance._deferred_fields:
|
||||
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)
|
||||
setattr(self.instance.__class__, field, field_tracker)
|
||||
|
||||
|
||||
class FieldTracker:
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue