как передать начальное значение в поле изображения в форме Django - PullRequest
3 голосов
/ 27 января 2012

В настоящее время я использую что-то вроде:

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

form = myForm(initial=initialValues)

Когда я вызываю myForm, как указано выше, начальные значения отображаются, как и ожидалось: textField1, textField2 и imageField (с параметрами В настоящее время: linkToImage, флажок Clear и Change:)

Но когда я сохраняю форму, в поле imageField ничего не сохраняется (проверяя базу данных, и я вижу поле imageField пустым).

Я знаю, что здесь что-то упускаю, но не могу понять, что. Любые советы?

Ответы [ 2 ]

2 голосов
/ 03 февраля 2012

Я решил свою проблему, назначив

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

перед сохранением формы. Yeey

0 голосов
/ 28 января 2012

Вам необходимо передать данные в форму при ее создании.

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)

Если вы этого еще не сделали, я бы предложил использовать представления на основе классов FormView вы можете легко переопределить функцию get_initial_data (), указать свои значения, а затем позволить представлению позаботиться о том, что еще нужно передать в форму для ее сохранения.Если вы пытаетесь сохранить модель (как мне кажется, вам), посмотрите CreateView и UpdateView.

Я мог бы быть более уверен в этом ответе, если бы точно знал, как / когда вы инициализировали эту форму.

...