title: Multiple self referenced ForeignKey relationship fields in Django model
body: <p>Which way should I create multiple self referenced ForeignKey fields in Django model? My current Model looks like:</p>
  <pre><code>class WordCoreModel(models.Model, BaseModel):
      word_core = models.CharField(max_length=255, default=&quot;&quot;)
      word_russian_typed = models.CharField(max_length=255, default=&quot;&quot;, blank=True)
      word_english_typed = models.CharField(max_length=255, default=&quot;&quot;, blank=True)
  
      homonym = models.ForeignKey(
          'self',
          on_delete=models.CASCADE,
          null=True, blank=True,
          related_name=&quot;core_words&quot;,
          related_query_name='homonym')
      synonym = models.ForeignKey(
          'self', on_delete=models.CASCADE,
          null=True, blank=True,
          related_name=&quot;core_words&quot;,
          related_query_name='synonym')
      antonym = models.ForeignKey(
          'self', on_delete=models.CASCADE,
          null=True, blank=True,
          related_name=&quot;core_words&quot;,
          related_query_name='antonym')
  
      class Meta:
          indexes = [models.Index(fields=['word_core'])]
          verbose_name = 'Core Word'
          verbose_name_plural = 'Core Words'
  
      def __str__(self):
          return self.word_core
  </code></pre>
  <p>Please give me some best-practices examples. I searched a lot for different solutions. I don’t find examples when there are several fields in the model.</p>
  <p>I especially need help in determining <code>related_name</code> and <code>related_query_name</code> in this case.</p>