[英]Getting 'str' object has no attribute 'get' in Django
views.py视图.py
def generate_xml(request, number):
caller_id = 'x-x-x-x'
resp = twilio.twiml.Response()
with resp.dial(callerId=caller_id) as r:
if number and re.search('[\d\(\)\- \+]+$', number):
r.number(number)
else:
r.client('test')
return str(resp)
url.py网址.py
url(r'^voice/(?P<number>\w+)$', 'django_calling.views.generate_xml', name='generating TwiML'),
Whenever I am requesting http://127.0.0.1:8000/voice/number?id=98
getting following error:每当我请求
http://127.0.0.1:8000/voice/number?id=98
收到以下错误:
Request Method: GET
Request URL: http://127.0.0.1:8000/voice/number?id=90
Django Version: 1.6.2
Exception Type: AttributeError
Exception Value: 'str' object has no attribute 'get'
Exception Location: /usr/local/lib/python2.7/dist-
Full Traceback:完整追溯:
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/voice/number?id=90
Django Version: 1.6.2
Python Version: 2.7.5
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_calling',
'django_twilio',
'twilio')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
I have just started to learn Django
.我刚刚开始学习
Django
。
You can not pass directly str
as a django response
.您不能直接将
str
作为django response
传递。 You must use你必须使用
from django.http import HttpResponse
if you want to render string data as django view response.如果要将字符串数据呈现为 django 视图响应。 have a look django.http.HttpResponse
看看django.http.HttpResponse
return HttpResponse(resp)
Django views must always return an HttpResponse
object, so try wrapping that string in an HttpResponse: Django 视图必须始终返回一个
HttpResponse
对象,因此尝试将该字符串包装在 HttpResponse 中:
from django.http import HttpResponse
return HttpResponse(str(resp))
Additionally, the number
variable in generate_xml
will contain only the string 'number'
, not the GET parameter.此外,
generate_xml
的number
变量将仅包含字符串'number'
,而不包含 GET 参数。 To get that, you might use:为此,您可以使用:
request.GET.get('id')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.