0

だから、これは私のフォームです:

class QuestionForm(forms.ModelForm):
    answer = forms.ChoiceField(required=True, widget=forms.RadioSelect())

    def __init__(self, question=None, *args, **kwargs):
        super(QuestionForm, self).__init__(*args, **kwargs)
        self.fields['answer'].choices = [(a.answer, a.answer) for a in Answer.objects.filter(question=question)]

    class Meta:
        model = Questions
        fields = ('answer', 'importance' )

ユーザーが を選択するanswerと、すべてのAnswerオブジェクトが表示されます。ここに私の見解があります:

def questions(request):
    new_forms = []
    q = Questions.objects.all()[0]
    if request.method =='POST':
        #form = QuestionForm(request.POST or None)
        for forms in new_forms:
            if forms.is_valid():
                new = forms.save(commit=False)
                #get the user's inputs to the QuestionForm and save them
                UserAnswer(user=request.user, answer=new.cleaned_data['answer'], question=new.question)
                UserAnswer.save()

    else:
        instance=Questions.objects.all().filter(owner=request.user)[0]
        #form = QuestionForm(question=q, instance=q)

    for a in Questions.objects.all():
        new_forms.append(QuestionForm(question=a, instance=a))
    return render_to_response("questions/base.html", locals(), context_instance=RequestContext(request))
4

1 に答える 1

1

私はあなたが何をしているのか非常に混乱しています。

            print new.fields['id_answer_2'].value
            print get_id_answer_2_display()

モデルインスタンスsave(commit=False)返す ModelFormです。fields 属性さえ持つべきではありません (ここでは AttributeError が発生します)。

2: 次にget_id_answer_2_display()、適切なフィールドでさえないように見える呼び出しを行います (スタンドアロン関数として呼び出すことは気にしないでください)。

ModelForm は、answerフィールドがあることを示唆しているためget_FOO_display、を使用するには、呼び出す必要がありますnew.get_answer_display()

于 2013-02-18T00:45:45.627 に答える