外部キーがその質問を指しているすべての選択肢がチェックボックスとして表示される複数選択質問フォームを作成したいと考えています。
同様の質問から、サブクラス化ModelForms
がこれを行う方法である可能性があることがわかりました。しかし、特定のものをに渡す方法がわかりませんでしquestion_id
たModelForm
。
現在、私は次のことを試しています:
からmodel.py
:
class Question(models.Model):
question = models.CharField(max_length=200)
creationDate = models.DateTimeField('date published')
author = models.ForeignKey(User)
def __unicode__(self):
return self.question
class Choice(models.Model):
question = models.ForeignKey(Question)
choice = models.CharField(max_length=200)
correct = models.BooleanField()
def __unicode__(self):
return self.choice
では、そのforms.py
ようなフォームを作成しようとしました:
class QuestionForm(forms.Form):
def __init__(self, *args, **kwargs):
super(QuestionForm, self).__init__(*args, **kwargs)
question_id = kwargs.pop('question')
self.fields['checkboxes'] = forms.ModelChoiceField(
queryset = Choice.objects.filter(question = question_id))
では、 as コンストラクター引数を渡してviews.py
を作成します。しかし、私は MOdelChoiceField が構築されている QuestionForm を取得し続けます。QuestionForm
question_id
NameError "name 'question_id' is not defined