Ошибка атрибута 'QueryDict' объект не имеет атрибута _meta - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь отправить запрос от PostMan в мой Django вид, и я получаю эту ошибку. «AttributeError: у объекта« QueryDict »нет атрибута« _meta »» Из того, что я собрал, он имеет какое-то отношение к form.save (), как видно из traceba, которую я искал во всем, чтобы найти решение или даже лучше способ передачи изображения с внешнего веб-клиента на сервер Django. Вся помощь очень ценится.

Traceback </p> <pre><code>Capture.PNG form is valid Internal Server Error: /getimg/ Traceback (most recent call last): File "C:\Users\Gedit\Desktop\django\virtualenv\lib\site-packages\django\core\handlers\exception.py", line 34, in inner response = get_response(request) File "C:\Users\Gedit\Desktop\django\virtualenv\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response response = self.process_exception_by_middleware(e, request) File "C:\Users\Gedit\Desktop\django\virtualenv\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "C:\Users\Gedit\Desktop\django\virtualenv\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view return view_func(*args, **kwargs) File "C:\Users\Gedit\Desktop\django\virtualenv\lib\site-packages\django\views\generic\base.py", line 71, in view return self.dispatch(request, *args, **kwargs) File "C:\Users\Gedit\Desktop\django\virtualenv\lib\site-packages\rest_framework\views.py", line 505, in dispatch response = self.handle_exception(exc) File "C:\Users\Gedit\Desktop\django\virtualenv\lib\site-packages\rest_framework\views.py", line 465, in handle_exception self.raise_uncaught_exception(exc) File "C:\Users\Gedit\Desktop\django\virtualenv\lib\site-packages\rest_framework\views.py", line 476, in raise_uncaught_exception raise exc File "C:\Users\Gedit\Desktop\django\virtualenv\lib\site-packages\rest_framework\views.py", line 502, in dispatch response = handler(request, *args, **kwargs) File "C:\Users\Gedit\Desktop\django\virtualenv\lib\site-packages\rest_framework\decorators.py", line 50, in handler return func(*args, **kwargs) File "C:\Users\Gedit\Desktop\django\indivproj\getimg\api\views.py", line 21, in getimg form.save() File "C:\Users\Gedit\Desktop\django\virtualenv\lib\site-packages\rest_framework\serializers.py", line 207, in save self.instance = self.update(self.instance, validated_data) File "C:\Users\Gedit\Desktop\django\virtualenv\lib\site-packages\rest_framework\serializers.py", line 979, in update info = model_meta.get_field_info(instance) File "C:\Users\Gedit\Desktop\django\virtualenv\lib\site-packages\rest_framework\utils\model_meta.py", line 35, in get_field_info opts = model._meta.concrete_model._meta AttributeError: 'QueryDict' object has no attribute '_meta' [24/Mar/2020 13:39:25] "POST /getimg/ HTTP/1.1" 500 20251

Views.py </p> <pre><code>@api_view(['POST',]) def getimg(request): if request.method == 'POST': form = ImageSerializer(request.POST, request.FILES) logger.warning(request.FILES['img']) if form.is_valid(): #raise_exception=True logger.warning('form is valid') form.save() logger.warning() response_dict = {'post': 'success'} return HttpResponse(simplejson.dumps(response_dict), content_type='application/javascript') else: logger.warning(form.errors) else: form = ImageSerializer() return render(request, 'getimg.html', {'form': form})

Serializers.py </p> <pre><code>class ImageSerializer(serializers.ModelSerializer): class Meta: model = Image fields = '__all__'

Models.py </p> <pre><code>class Image(models.Model): # name = models.CharField(default='name', max_length=30) img = models.ImageField(upload_to='images/', max_length=1000)

Urls.py </p> <pre><code>app_name = 'getimg' urlpatterns = [ # ex: /polls/ path('', views.getimg, name='getimg'), path('gettext/', views.gettext, name='gettext'), path('success', views.success, name = 'success'), ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Почтальон The postman post request

1 Ответ

0 голосов
/ 25 марта 2020

поэтому, посмотрев вокруг как умного человека, я понял, что не определил, что такое функция save () ... так что теперь я делаю

Код, который исправил ошибку, но все еще не работает

    def save(self):
    img = Image(
               img =self.validated_data['img'],
        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...