フォームを使用した 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 が事前に入力した所有者の値をレンダリングしようとするため、どういうわけかサイレントに失敗していると思います。しかし、値は問題ないようです。それで、他に何を探すべきですか?