2012-01-27 2 views
3

В настоящее время я использую что-то вроде:как пройти начальное значение к 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) 

Когда я называю Myform, как описано выше, начальные значения отображаются, как и ожидалось: textField1, поля 2 и imageField (с опциями В настоящее время: linkToImage, Очистить флажок и Изменить:)

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

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

+0

Вы указали ['upload_to'] (https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.FileField.upload_to) в модели и' MEDIA_PATH 'в ваших настройках? ([Здесь] (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 я назначаю начальные значения ... тогда форма отображается через шаблон, три поля отображаются так, как ожидалось. После сохранения формы я проверяю db, и я вижу, что только textField 1 и 2 сохраняются, но imageField нет. – marlboro

Смежные вопросы