你应该使用一个贯穿模型。
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\u字段,当获取与问题相关的测试时,应该使用如下内容。
Question.objects.get(id=1).tests.all().order_by("questiontest__sort_field")