code: def patch_constructor(model):
      
      old_init = model.__init__
  
      def new_init(self, *args, **kwargs):
          self._mt_init = True
          populate_translation_fields(self.__class__, kwargs)
          for key, val in list(kwargs.items()):
              new_key = rewrite_lookup_key(model, key)
              # Old key is intentionally left in case old_init wants to play with it
              kwargs.setdefault(new_key, val)
          old_init(self, *args, **kwargs)
      model.__init__ = new_init
docs: Monkey patches the original model to rewrite fields names in __init__