Нужен ли мне дополнительный код для поля изображения в Django? - PullRequest
4 голосов
/ 27 июня 2011

У меня есть это в модели

image_name = models.ImageField(upload_to='accounts/')

На мой взгляд, у меня есть

def account_form(request):
    if request.method == 'POST': # If the form has been submitted...
        form = AccountForm(request.POST) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
                form.save()
                return HttpResponseRedirect('/thanks/') # Redirect after POST
    else:
        form = AccountForm() # An unbound form

    return render_to_response('account_form.html', {
            'form': form,
    })

Нужно ли делать дополнительное кодирование для сохранения изображения или django сделает это сам

Ответы [ 2 ]

19 голосов
/ 27 июня 2011

Также убедитесь, что ваша форма enctype установлена ​​в HTML для отправки данных файла:

<form action="..." method="POST" enctype="multipart/form-data">
18 голосов
/ 27 июня 2011

Вам также необходимо указать request.FILES в вашей учетной записи.

form = AccountForm(request.POST, request.FILES) # A form bound to the POST data

Ссылка: https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#the-save-method

Кроме методов save() и save_m2m(), ModelForm работает точно так же, как и любая другая форма форм. Например, метод is_valid() используется для проверки правильности, метод is_multipart() используется для определения того, требует ли форма многокомпонентной загрузки файла (и, следовательно, должен ли request.FILES передаваться в форму) и т. Д.

...