python - template - Obtener el objeto ''str'' no tiene ningún atributo ''get'' en Django
django urls path (2)
Las vistas de Django siempre deben devolver un objeto HttpResponse
, así que intente envolver esa cadena en un HttpResponse:
from django.http import HttpResponse
return HttpResponse(str(resp))
Además, la variable number
en generate_xml
contendrá solo la cadena ''number''
, no el parámetro GET. Para conseguir eso, podrías usar:
request.GET.get(''id'')
vistas.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
url(r''^voice/(?P<number>/w+)$'', ''django_calling.views.generate_xml'', name=''generating TwiML''),
Cada vez que solicito http://127.0.0.1:8000/voice/number?id=98
obtengo el siguiente error:
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-
Rastreo completo:
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'')
Acabo de empezar a aprender Django
.
No puede pasar directamente str
como una django response
. Debes usar
from django.http import HttpResponse
Si desea generar datos de cadena como respuesta de vista de django. echar un vistazo here
return HttpResponse(resp)