2012-01-27 19 views
3

を初期値を渡すために、現在、私のようなもの使用しています:私は上記のようにあるmyFormを呼び出すと、予想通りはどのようにDjangoのフォームでのImageFieldに

initialValues={ 
    'textField1':'value for text field 1', 
    'textField2':'value for text field 2', 
    'imageField': someModel.objects.get(id=someId).logo 
    } 

form = myForm(initial=initialValues) 

を、初期値が表示されます:テキストフィールド1、のTextField2と

しかし、私がフォームを保存すると、imageFieldフィールドには何も保存されません(データベースをチェックすると、imageFieldフィールドが空白になります)。

私はここで何かを逃していることを知っていますが、私は何が分かりません。任意のヒント?

+0

モデルで['upload_to'](https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.FileField.upload_to)を指定しました。また、' MEDIA_PATHあなたの設定で? ([Here](http://www.nitinh.com/2009/02/django-example-filefield-and-imagefield/)は完全な例を持つ良い投稿です)。 –

答えて

2

私は、フォームを保存する直前に

request.FILES['imageField']=someModel.objects.get(id=someId).logo 

を割り当てることで、私の問題を解決しました。 Yeey

0

データを作成するときにフォームにデータを渡す必要があります。

initialValues={ 
    'textField1':'value for text field 1', 
    'textField2':'value for text field 2', 
    'imageField': someModel.objects.get(id=someId).logo 
    } 
form = myForm(data=request.POST, initial=initialValues) 

あなたはまだ行っていない場合、私はclass-based viewsを使用してお勧めします。 FormViewを使用すると、get_initial_data()関数を簡単にオーバーライドし、値を指定してから、フォームに渡すその他のものを保存するためにビューに処理させることができます。モデル(私が思う)を保存しようとしている場合は、CreateViewとUpdateViewをチェックしてください。

私がこのフォームをどのように/初期化したかを正確に知っていれば、この回答についてもっと確かめることができます。

+0

これはまさに私がやっていることです。 myFormを作成するときに初期値を割り当てます...テンプレートを介してフォームが表示され、3つのフィールドが期待通りに表示されます。フォームを保存した後、dbをチェックすると、textField 1と2のみが保存されていますが、imageFieldは保存されていないことがわかります。 – marlboro

関連する問題