docs: def connect(self, index):
          """Connect signals needed for dependency updates."""
          # Determine which model is the target model as either side of the relation
          # may be passed as `field`.
          if index.object_type == self.field.rel.model:
              self.model = self.field.rel.related_model
              self.accessor = self.field.rel.field.attname
          else:
              self.model = self.field.rel.model
              if self.field.rel.symmetrical:
                  # Symmetrical m2m relation on self has no reverse accessor.
                  raise NotImplementedError(
                      'Dependencies on symmetrical M2M relations are not supported due '
                      'to strange handling of the m2m_changed signal which only makes '
                      'half of the relation visible during signal execution. For now you '
                      'need to use symmetrical=False on the M2M field definition.'
                  )
              else:
                  self.accessor = self.field.rel.get_accessor_name()
  
          # Connect signals.
          signals = super().connect(index)
  
          m2m_signal = ElasticSignal(self, 'process_m2m', pass_kwargs=True)
          m2m_signal.connect(m2m_changed, sender=self.field.through)
          signals.append(m2m_signal)
  
          # If the relation has a custom through model, we need to subscribe to it.
          if not self.field.rel.through._meta.auto_created:  # pylint: disable=protected-access
              signal = ElasticSignal(self, 'process_m2m_through_save', pass_kwargs=True)
              signal.connect(post_save, sender=self.field.rel.through)
              signals.append(signal)
  
              signal = ElasticSignal(self, 'process_m2m_through_pre_delete', pass_kwargs=True)
              signal.connect(pre_delete, sender=self.field.rel.through)
              signals.append(signal)
  
              signal = ElasticSignal(self, 'process_m2m_through_post_delete', pass_kwargs=True)
              signal.connect(post_delete, sender=self.field.rel.through)
              signals.append(signal)
  
          return signals