Change.field
This commit is contained in:
parent
1e0c122cfe
commit
cd7d131750
3 changed files with 8 additions and 5 deletions
|
@ -127,6 +127,10 @@ class Change(models.Model):
|
||||||
self.created_object = None
|
self.created_object = None
|
||||||
self._set_object = value
|
self._set_object = value
|
||||||
|
|
||||||
|
@property
|
||||||
|
def field(self):
|
||||||
|
return self.model_class._meta.get_field(self.field_name)
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
if self.pk is not None:
|
if self.pk is not None:
|
||||||
raise TypeError('change objects can not be edited (use update to set discarded_by)')
|
raise TypeError('change objects can not be edited (use update to set discarded_by)')
|
||||||
|
|
|
@ -229,10 +229,9 @@ class ChangeSet(models.Model):
|
||||||
object_pks.setdefault(LocationSlug, set()).add(json.loads(change.field_value))
|
object_pks.setdefault(LocationSlug, set()).add(json.loads(change.field_value))
|
||||||
continue
|
continue
|
||||||
elif not change.field_name.startswith('title_'):
|
elif not change.field_name.startswith('title_'):
|
||||||
field = change.model_class._meta.get_field(change.field_name)
|
model = getattr(change.field, 'related_model', None)
|
||||||
model = getattr(field, 'related_model', None)
|
|
||||||
if change.action in ('m2m_add', 'm2m_remove'):
|
if change.action in ('m2m_add', 'm2m_remove'):
|
||||||
model = change.model_class._meta.get_field(change.field_name).related_model
|
model = change.field.related_model
|
||||||
if model is not None:
|
if model is not None:
|
||||||
object_pks.setdefault(model, set()).add(json.loads(change.field_value))
|
object_pks.setdefault(model, set()).add(json.loads(change.field_value))
|
||||||
|
|
||||||
|
|
|
@ -163,7 +163,7 @@ def group_changes(changeset, can_edit=False, show_history=False):
|
||||||
'order': (4, tuple(code for code, title in settings.LANGUAGES).index(lang)),
|
'order': (4, tuple(code for code, title in settings.LANGUAGES).index(lang)),
|
||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
field = obj.__class__._meta.get_field(change.field_name)
|
field = change.field
|
||||||
field_title = field.verbose_name
|
field_title = field.verbose_name
|
||||||
field_value = field.to_python(json.loads(change.field_value))
|
field_value = field.to_python(json.loads(change.field_value))
|
||||||
if field.related_model is not None:
|
if field.related_model is not None:
|
||||||
|
@ -200,7 +200,7 @@ def group_changes(changeset, can_edit=False, show_history=False):
|
||||||
lang = change.field_name[6:]
|
lang = change.field_name[6:]
|
||||||
field_title = _('Title (%(lang)s)') % {'lang': dict(settings.LANGUAGES).get(lang, lang)}
|
field_title = _('Title (%(lang)s)') % {'lang': dict(settings.LANGUAGES).get(lang, lang)}
|
||||||
else:
|
else:
|
||||||
field = obj.__class__._meta.get_field(change.field_name)
|
field = change.field
|
||||||
field_title = field.verbose_name
|
field_title = field.verbose_name
|
||||||
model = getattr(field, 'related_model', None)
|
model = getattr(field, 'related_model', None)
|
||||||
if model is not None:
|
if model is not None:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue