12

いろいろなことについて満足のいくレベルの情報を保持しなければならない会社のためのシステムを作っています。固定された質問と回答のある固定モデルを使用してうまく機能するようにしましたが、それらを変更する必要があると確信しています。質問を追加します。

そこで、ユーザーが定義したカスタム質問で構成されるカスタム評価スキーマを作成できるシステムを作りたいと考えています。どうすればそのようなデザインを作ることができますか?

今のところ私のモデルはこれですが、間違っています:

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が役に立たないことを除いて、私が望むものの一種です。すべての質問と回答を自分で選択する必要があるためです。選択したスキーマに関連する質問のみのリストは表示されません。

4

4 に答える 4

4

django-surveyをチェックしましたか?かなりきれいです。

于 2009-06-26T11:01:50.593 に答える
3

Django-crowdsourcingは django-survey のフォークであり、2012 年現在積極的に維持されており、Django 1.2+ を対象としています。

于 2012-09-17T22:19:42.500 に答える
1

djangoの専門家ではないので、経験豊富な人が答えるのを待つこともできますが、次のようなことを試すことができます。

EvaluationQuestions.objects.filter(evaluationscheme__title="myscheme").select_related()

データにアクセスする方法によっては、関係を逆にすることもできます。

class EvaluationScheme(models.Model):
    title = models.CharField(max_length=200)
    evaluations = models.ManyToMany(Evaluation)
    questions = models.ManyToMany(EvaluationQuestions)
于 2009-06-26T11:03:23.210 に答える