Нужен ли мне дополнительный код для поля изображения в Django?

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

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 ответа

Решение

Вам нужно пройти request.FILES к вашей учетной записи, а также.

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

Ссылка: https://docs.djangoproject.com/en/dev/topics/forms/modelforms/

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

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

<form action="..." method="POST" enctype="multipart/form-data">
Другие вопросы по тегам