Django Image Upload, Нет данных в запросе. ФАЙЛЫ [''] - PullRequest
0 голосов
/ 31 августа 2018

Я просто пытался загрузить изображение профиля, что я делал раньше. Но на этот раз файл не загружается, хотя код тот же. Имя изображения доступно из 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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...