0

フォームを使用した Django の奇妙な問題:

私はこのように定義された Form.class を持っています...

class MeetingForm(forms.Form):
    owner = forms.ModelChoiceField(
            queryset=Profile.objects.all(),
            widget=forms.HiddenInput() )
    date = forms.DateTimeField()
    name = forms.CharField(max_length=30)
    etc.

そして、このような関数を呼び出して新しいインスタンスを作成します...

def newMeetingForm(request,profile) :
    mf = MeetingForm( {
        'date' : date.today(),        
        } )
    return mf

これは期待どおりに機能します。ただし、会議の「所有者」フィールドは空白です。私がすべきだと思うのは、次のように newMeetingForm の所有者フィールドを事前に入力することです。

def newMeetingForm(request,profile) :
    mf = MeetingForm( {
        'date' : date.today(),
        'owner' : profile,
        } )
    return mf

ここで、引数「プロファイル」はプロファイル オブジェクトです。

ただし、これを実行すると、フォームはレンダリングされません。

テンプレートでこれを使用しています:

{{ form.as_p }}

しかし、newMeetingForm に余分な「所有者」行があると、文字通り空の文字列として表示されるように見えます。おそらく、ModelChoiceField が事前に入力した所有者の値をレンダリングしようとするため、どういうわけかサイレントに失敗していると思います。しかし、値は問題ないようです。それで、他に何を探すべきですか?

4

2 に答える 2

0

プロファイルの実際のインスタンスを newMeetingForm に渡していますか?

于 2009-03-05T19:05:18.120 に答える