Ошибка при использовании "сквозной" промежуточной модели с django-sortedm2m

Возможно ли определить мою собственную промежуточную модель с sortedm2m используя through? В моем случае у меня есть такая модель:

class Sample(models.Model):
   id_sample = models.AutoField(primary_key=True)
   name = models.CharField(unique=True, max_length=20)
   indexes = SortedManyToManyField(Index, through='SamplePoolIndexCand', blank=True)
   pools = SortedManyToManyField(Index, through='SamplePoolIndexCand', blank=True)
   gene_lists = SortedManyToManyField(Index, through='SamplePoolIndexCand', blank=True)

Моя промежуточная таблица:

class SamplePoolIndexCand(models.Model):
    sample_id = models.ForeignKey(Sample, null=True, blank=True, on_delete=models.CASCADE)
    pool_id = models.ForeignKey(Pool, null=True, blank=True, on_delete=models.CASCADE)
    index_id = models.ForeignKey(Index, null=True, blank=True, on_delete=models.CASCADE,
    gene_cand_list_id = models.ForeignKey(GeneCandList, null=True, blank=True, on_delete=models.CASCADE)                       

    class Meta:
        unique_together = (("sample_id", "pool_id", "index_id", "gene_cand_list_id"),)

Я получил следующее сообщение об ошибке:

AssertionError: The model is used as an intermediate model by '<class 'myproject.models.SamplePoolIndexCand'>' but has no defined '_sort_field_name' attribute

Как я могу решить эту проблему? Я пытался добавить поле упорядочивания в промежуточную таблицу, но получил ту же ошибку:

class SamplePoolIndexCand(models.Model):
    sample_id = models.ForeignKey(Sample, null=True, blank=True, on_delete=models.CASCADE)
    pool_id = models.ForeignKey(Pool, null=True, blank=True, on_delete=models.CASCADE)
    index_id = models.ForeignKey(Index, null=True, blank=True, on_delete=models.CASCADE,
    gene_cand_list_id = models.ForeignKey(GeneCandList, null=True, blank=True, on_delete=models.CASCADE)                       
    sort_value = models.IntegerField()

    class Meta:
        ordering = ["sort_value"]
        unique_together = (("sample_id", "pool_id", "index_id", "gene_cand_list_id"),)

Я использую Django версии 3.1.7 и Python 3.8.10.

Вернуться на верх