2

外部キーがその質問を指しているすべての選択肢がチェックボックスとして表示される複数選択質問フォームを作成したいと考えています。

同様の質問から、サブクラス化ModelFormsがこれを行う方法である可能性があることがわかりました。しかし、特定のものをに渡す方法がわかりませんでしquestion_idModelForm

現在、私は次のことを試しています:

から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 を取得し続けます。QuestionFormquestion_idNameError "name 'question_id' is not defined

4

1 に答える 1

0

ドキュメントは Meta クラスについて話します:

class ArticleForm(ModelForm):
    class Meta:
        model = Article

それは役に立ちますか?

于 2012-06-26T11:20:26.853 に答える