そのような場合は、"Question"のように、モデル名を文字列として指定します。
python
1class Hint(models.Model):
2 h_question = models.ForeignKey("Question", verbose_name='問題') # 文字列として指定
3 hint = models.TextField(default='', verbose_name='ヒント')
4
5
6class Question(models.Model):
7 title = models.CharField("タイトル", max_length=255)
8 q_hint = models.ForeignKey(Hint, verbose_name='ヒント') # Hintを参照
もしもQuestionとHintが1対1の関係ならば、片方にOneToOneでも良さそうです。
python
1class Hint(models.Model):
2 hint = models.TextField(default='', verbose_name='ヒント')
3
4
5class Question(models.Model):
6 title = models.CharField("タイトル", max_length=255)
7 hint = models.OneToOneField(Hint, verbose_name='ヒント') # Hintを参照
一つのヒントを複数の問題で使いまわしたりするならばForeignKeyを使うのが良さそうですが、
ForeignKeyでも互いに参照することは可能です。
python
1class Hint(models.Model):
2 hint = models.TextField(default='', verbose_name='ヒント')
3
4
5class Question(models.Model):
6 title = models.CharField("タイトル", max_length=255)
7 hint = models.ForeignKey(Hint, verbose_name='ヒント') # Hintを参照
templateで、そのヒントを指定している問題を全て取り出してみる...
python
1{% for question in hint.question_set.all %}
2{{ question }}
3{% ednfor %}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/17 14:52