Я пишу REST API с использованием Django и Django Rest Framework.В настоящее время я пишу модели.
У меня есть модель для студентов, модель для вопросов и модель для ответов.
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')
Как я могу добиться, чтобы студенты могли выбрать только один вопрос за ответ?Или выбор модели с отношениями - плохой дизайн?