Использование имени Django 'HttpResponse' не определено

Так что новенький в Python, пытающийся обойти эту ошибку django:

NameError at /hello/
name 'HttpResponse' is not defined
Request Method:
GET
Request URL:
http://localhost:61892/hello/
Django Version:
1.11.7
Exception Type:
NameError
Exception Value:
name 'HttpResponse' is not defined
Exception Location:
c:\users\mblaylock\source\repos\mysite\mysite\mysite\views.py in hello, line 6
Python Executable:
c:\users\mblaylock\source\repos\mysite\mysite\env\Scripts\python.exe
Python Version:
3.6.2
Python Path:
['c:\\users\\mblaylock\\source\\repos\\mysite\\mysite',
 'c:\\users\\mblaylock\\source\\repos\\mysite\\mysite',
 'c:\\users\\mblaylock\\source\\repos\\mysite\\mysite\\env\\Scripts\\python36.zip',
 'C:\\Program Files\\Python36\\DLLs',
 'C:\\Program Files\\Python36\\lib',
 'C:\\Program Files\\Python36',
 'c:\\users\\mblaylock\\source\\repos\\mysite\\mysite\\env',
 'c:\\users\\mblaylock\\source\\repos\\mysite\\mysite\\env\\lib\\site-packages']
Server time:
Mon, 13 Nov 2017 18:09:39 +0000

Мой код:

class views(object):

    """description of class"""

    from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world")

Использование Visual Studio для моей IDE в Windows 10, если это имеет значение.

Заранее спасибо!

2 ответа

Там нет причин иметь это class views линия там. Убери это.

Лучший подход в этой ситуации - использовать один метод для обработки этого запроса (здесь вам не нужны представления на основе классов), который не должен быть внутри какого-либо класса:

from django.http import HttpResponse

def hello(request): 
    return HttpResponse("Hello world")

Если вы хотите использовать представления на основе классов, вы должны помнить, что при импорте чего-либо в тело класса это может быть недоступно в методе. Вы должны вставить импорт в верхней части файла Python или непосредственно в методе.

Другие вопросы по тегам