Я просто пытался загрузить изображение профиля, что я делал раньше. Но на этот раз файл не загружается, хотя код тот же. Имя изображения доступно из request.data('image')
, но само изображение не из request.FILES['image']
Я пробовал сериализатор, формы и прямой путь, но все еще без прогресса.
Вот код
models.py
class Profile(models.Model):
user = models.OneToOneField(UserProfile, on_delete=models.CASCADE)
image = models.ImageField(upload_to='profile_images', null=True)
def __str__(self):
return self.user.name
HTML код
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="myfile">
<button type="submit" name="upload-profile-photo">Upload</button>
</form>
Views.py
if 'upload-profile-photo' in request.POST:
profile_instance = Profile.objects.get(user=token.user.id)
profile_instance.image = request.FILES["myfile"]
profile_instance.save()
return HttpResponse("Success")
Запрос информации
GET: No Get Data
POST: csrfmiddlewaretoken: .....
myfile: 'maxresdefault.jpg'
upload-profile-photo: ''
FILES: No FILES data
Traceback
Traceback (most recent call last):
File "/home/piyush/PycharmProjects/doel/doel/venv_doel/lib/python3.6/site-packages/django/core/handlers/exception.py", line 35, in inner
response = get_response(request)
File "/home/piyush/PycharmProjects/doel/doel/venv_doel/lib/python3.6/site-packages/django/core/handlers/base.py", line 128, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/piyush/PycharmProjects/doel/doel/venv_doel/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/piyush/PycharmProjects/doel/doel/venv_doel/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "/home/piyush/PycharmProjects/doel/doel/venv_doel/lib/python3.6/site-packages/django/views/generic/base.py", line 69, in view
return self.dispatch(request, *args, **kwargs)
File "/home/piyush/PycharmProjects/doel/doel/venv_doel/lib/python3.6/site-packages/rest_framework/views.py", line 483, in dispatch
response = self.handle_exception(exc)
File "/home/piyush/PycharmProjects/doel/doel/venv_doel/lib/python3.6/site-packages/rest_framework/views.py", line 443, in handle_exception
self.raise_uncaught_exception(exc)
File "/home/piyush/PycharmProjects/doel/doel/venv_doel/lib/python3.6/site-packages/rest_framework/views.py", line 480, in dispatch
response = handler(request, *args, **kwargs)
File "/home/piyush/PycharmProjects/doel/doel/doel_registration_api/views.py", line 933, in post
profile_instance.image = request.FILES["myfile"]
File "/home/piyush/PycharmProjects/doel/doel/venv_doel/lib/python3.6/site-packages/django/utils/datastructures.py", line 79, in __getitem__
raise MultiValueDictKeyError(key)
django.utils.datastructures.MultiValueDictKeyError: 'myfile'