Я создаю систему для компании, которая, помимо прочего, должна содержать информацию об удовлетворительном уровне о разных вещах, я заставил ее работать нормально, используя фиксированную модель с фиксированными вопросами и ответами, но я уверен, что они понадобятся для изменения или добавления вопросов.
Итак, я хочу создать систему, в которой пользователи могут создавать настраиваемые схемы оценки, состоящие из настраиваемых им заданных вопросов. Как мне сделать такой дизайн?
Сейчас моя модель - это, но неправильно:
RATING_CHOICES = ((0, u"Good"), (1, u"Bad"), (2, u"Dunno"),)
class EvaluationScheme(models.Model):
title = models.CharField(max_length=200)
class Evaluation(models.Model):
doctor = models.CharField(max_length=200)
agency = models.CharField(max_length=200)
scheme = models.ForeignKey(EvaluationScheme)
class EvaluationQuestion(models.Model):
question = models.CharField(max_length=200)
evaluation = models.ForeignKey(EvaluationScheme)
def __unicode__(self):
return self.question
class EvaluationAnswer(models.Model):
evaluation = models.ForeignKey(Evaluation)
question = models.ForeignKey(EvaluationQuestion)
answer = models.SmallIntegerField(choices=RATING_CHOICES)
Это то, что я хочу, за исключением того, что EvaluationScheme бесполезен, поскольку вам все равно придется выбирать все вопросы и ответы самостоятельно - он не отображает список только вопросов, связанных с выбранной схемой.