HTTPResponse.__init__() получил неожиданный аргумент ключевого слова 'content_type'

Ошибка -

TypeError at /api/ HTTPResponse.init() получил неожиданный аргумент ключевого слова 'content_type' Метод запроса: GET URL запроса: http://127.0.0.1:8000/api/ Версия Django: 4.0.5 Тип исключения: TypeError Значение исключения:
HTTPResponse.init() получил неожиданный аргумент ключевого слова 'content_type' Расположение исключения: D:\Python_Tutorials\DJango\PracticeDjango\Rest_Practice\withoutrest\testapp\views.py, line 17, in emp_data_json_view Python Executable: C:\Users\HP\AppData\Local\Programs\Python\Python310\python.exe Версия Python: 3.10.5 Python Path:
['D:\Python_Tutorials\DJango\PracticeDjango\Rest_Practice\withoutrest', 'C:\Users\HP\AppData\Local\Programs\Python\Python310\python310.zip', 'C:\Users\HP\AppData\Local\Programs\Python\Python310\DLLs', 'C:\Users\HP\AppData\Local\Programs\Python\Python310\lib', 'C:\Users\HP\AppData\Local\Programs\Python\Python310', 'C:\Users\HP\AppData\Local\Programs\Python\Python310\lib\site-packages', 'C:\Users\HP\AppData\Local\Programs\Python\Python310\lib\site-packages\win32', 'C:\Users\HP\AppData\Local\Programs\Python\Python310\lib\site-packages\win32\lib', 'C:\Users\HP\AppData\Local\Programs\Python\Python310\lib\site-packages\Pythonwin']. Время сервера: Sat, 20 Aug 2022 17:29:03 +0000

from http.client import HTTPResponse
from django.shortcuts import render
import json
# Create your views here.
def emp_data_json_view(request):
    emp_data = {'eno': 100,
                'ename':'sunny',
                'esal' : 1000,
                'address' : 'Pune'
                }

    # dumps() -> coonvert python dict to json
    # loads() -> convert json to python dict
    #converting pytohn dictionary to json data

    json_data = json.dumps(emp_data)
    # if we did not mention content type - it will be consider as HTTP response only
    return HTTPResponse(json_data, content_type = 'application/json')

Я внес изменения в код и использовал JsonResponse напрямую, а не HTTPRespons. И это сработало для меня.

from django.http import JsonResponse
def emp_data_json_view(request):
    emp_data = {'eno': 100,
                'ename':'sunny',
                'esal' : 1000,
                'address' : 'Pune'
                }
    return JsonResponse(emp_data)

Неправильный импорт вызвал у меня эту ошибку -

 Replacing this - from http.client import HTTPResponse
    to this -     from django.http import HttpResponse

#from http.client import HTTPResponse
from django.http import HttpResponse
from django.shortcuts import render
import json
# Create your views here.
def emp_data_json_view(request):
    emp_data = {'eno': 100,
                'ename':'sunny',
                'esal' : 1000,
                'address' : 'Pune'
                }

    # dumps() -> coonvert python dict to json
    # loads() -> convert json to python dict
    #converting pytohn dictionary to json data

    json_data = json.dumps(emp_data)
    # if we did not mention content type - it will be consider as HTTP response only
    return HttpResponse(json_data, content_type = 'application/json')
Вернуться на верх