django-model-utils icon indicating copy to clipboard operation
django-model-utils copied to clipboard

FieldTracker combined with modeltranslation

Open chubz opened this issue 6 years ago • 0 comments

Problem

FieldTracker interaction with django-modeltranslation registered translated fields.

Environment

  • Django Model Utils version: 3.1.1
  • Django version: 1.11.10
  • Python version: 2.7
  • Other libraries used, if any: django-modeltranslation==0.12.2

Code snippet

# models.py
class MyModel(models.Model):
    title = models.TextField(_('title'),)
    tracker = FieldTracker()
    def save(self, *args, **kwargs):
        if self.tracker.has_changed('title_en'):
            # do something
# translation.py
class MyModelTranslationOptions(TranslationOptions):
    fields = ('title',)

translator.register(MyModel, MyModelTranslationOptions)

Question

As far as I've gathered, FieldTracker uses class_prepared to set the fields it is going to track, while I guess modeltranslation using the register pattern adds 'translated_lang' fields at a later point. Is there any way to delay or reinitialize tracker after the modeltranslation has done it's job.

Use case: Tracking changes per language for purposes of parsing and publishing after the change has been made and approved.

chubz avatar Mar 26 '18 15:03 chubz