models.py:
class Empresa(models.Model):
logo = models.FileField(null=True)
forms.py:
class ConfiEmpresa(ModelForm):
logo = forms.FileField(required=False)
class Meta:
model = Empresa
Входной HTML-код, отображаемый в поле формы, следующий:
<input type="file" name="logo" id="id_logo">
views.py:
import base64
def configempresa(request):
if request.method == "POST":
form = ConfiEmpresa(request.POST, request.FILES)
print(form.errors) # I'm not having any form error here
if form.is_valid():
logo = form.cleaned_data.get('logo')
print(logo) # It's printing "None"
logo = base64.encodebytes(logo)
#...rest of the view
Ошибка, которую я получаю:
TypeError at /Config/empresa/
expected bytes-like object, not NoneType
Итак, в заключение я пытаюсь преобразовать jpg-файл, который пользователь устанавливает как 'logo 'to base64, чтобы сохранить его в моей БД, а затем декодировать, чтобы получить изображение там, где оно мне нужно.
Конечно, я делаю что-то не так, думаю, это на мой взгляд.Как я могу обработать значение поля формы logo
, чтобы преобразовать его в base64?
Я не храню необработанный файл в любой папке.