0

Django newb here、django polls チュートリアルに取り組み、投票結果を追跡するモデルを追加しようとしています。

# Create your models here.
class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    numChoices = models.IntegerField(default=0)
    def __unicode__(self):
        return self.question

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
    def __unicode__(self):
        return self.choice_text

class Session_results(models.Model):
    sessionKey=models.ForeignKey(Session)
    questionAsked = models.ForeignKey(Poll)
    answerChosen=models.ForeignKey(Choice)
    def __unicode__(self):
        return self.sessionKey

ユースケースは、基本的に質問のリスト (投票モデル)、各選択肢が質問に対応する選択肢のリスト (選択モデル) があり、何を追跡できるセッションのリストを保持したい場合です。ユーザーが回答した質問 (Session_results モデル)。最終的には、セッションと比較して何かをしたいと思います。たとえば、セッション X が質問 1 と 2 に回答した場合、質問 1 と 2 に回答した他のセッションも調べます。これには、SQL での自己結合が含まれると思います。それが私の目標なら、多対多を使用する必要がありますか? Session_results モデルの行を置き換えることを考えていました:

questionAsked = models.ManyToManyField(Poll)

この行を入力して python manage.py sql polls を実行すると、django が自動的に結合テーブルを作成したことがわかりますが、そのテーブルは将来のニーズに応えていないようです。https://docs.djangoproject.com/en/1.5/topics/db/examples/many_to_many/ページを読みましたが、私の質問に答えていないようでした。また、私がやりたいことを考えると、生のSQLクエリを使用しますか?

ありがとう!!

4

0 に答える 0