docs: def _process_m2m_through(self, obj, action):
          """Process custom M2M through model actions."""
          source = getattr(obj, self.field.rel.field.m2m_field_name())
          target = getattr(obj, self.field.rel.field.m2m_reverse_field_name())
  
          pk_set = set()
          if target:
              pk_set.add(target.pk)
  
          self.process_m2m(source, pk_set, action=action, reverse=False, cache_key=obj)