Вы должны использовать сквозную модель.
Пример использования сквозной модели:
class Question(models.Model):
value = models.TextField()
class Test(models.Model)
value = models.TextField()
questions = models.ManyToManyField(Question, related_name="tests", through="QuestionTest")
class QuestionTest(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
test = models.ForeignKey(Test, on_delete=models.CASCADE)
sort_field = models.IntegerField(default=0)
При вставке в модель QuestionTest вам необходимо указать поле sort_, а при получении тестов, связанных с вопросом, вы должны использовать что-то вроде этого.
Question.objects.get(id=1).tests.all().order_by("questiontest__sort_field")