我正在使用django和django-rest框架编写一个RESTAPI。我现在正在写模型。
我有一个学生模型,一个问题模型和一个答案模型。
class Question(models.Model):
question_text = models.CharField()
class Answer(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
answer_text = models.CharField()
class Student(models.Model):
name = models.CharField()
学生们应该能够在每个问题上选择一个而且只有一个答案。
所以我想设计一个学生选择的答案模型-这样我就可以让学生选择一个关系-就像这样:
class StudentPickedAnswer(models.Model):
student = models.ForeignKey(Student, on_delete=models.CASCADE)
answer = models.ForeignKey(Answer, on_delete=models.CASCADE)
我发现有一个
unique_together
的约束
class Meta
. 但在我看来,它不能具体说明关系。我需要这样的东西;
class Meta:
unique_together = ('student', 'answer__question')
我怎样才能做到学生每个答案只能选一个问题?或者挑选一个有关系的模型是一个糟糕的设计?