Método Django HttpResponseNotModified

En django, ¿cómo se usa HttpResponseNotModified devolver una respuesta que no hace nada sobre la página actual? Se produce un error cuando enlazo a esta URL:

urlpatterns = patterns('views',
    url(r'speed/$', "Speed", name='speed'),
)

def Speed(request):
     return HttpResponseNotModified()# ????

En solicitud GET método, es <QueryDict: {u'speed': [u'1'], u'id': [u'777c6c1c-4959-4497-83b0-67f8b4c1ce81']}>

El mensaje de error:

'QueryDict' object is not callable

Que debería HttpResponseNotModified usar si quiero devolver una respuesta que no haga nada sobre la página actual? Gracias .

preguntado el 12 de febrero de 14 a las 07:02

¿Qué quiere decir exactamente con "no hacer nada sobre la página actual"? También, request.GET('id') probablemente debería ser request.GET['id'] (como también lo indica el error que está recibiendo), pero todavía no puedo entender qué es exactamente lo que está tratando de lograr con este código. -

2 Respuestas

request.GET es un QueryDict. Accede a sus elementos como lo haría con un diccionario normal:

request.GET['id']

Respondido 12 Feb 14, 07:02

El problema es que estas llamando request.GET que no es un método ni un objeto invocable.

return HttpResponseNotModified(request.GET('id'), )# ????
#                                         ^    ^

Deberías usar request.GET['id'] or request.GET.get('id')...

Pero, según la documentación, HttpResponseNotModified no acepta ningún argumento:

El constructor no acepta argumentos y no se debe agregar contenido a esta respuesta. Use esto para indicar que una página no ha sido modificada desde la última solicitud del usuario (código de estado 304).

Así que la declaración de devolución debería ser:

return HttpResponseNotModified() 

Respondido 12 Feb 14, 08:02

Gracias por tu respuesta. He modificado el código usando return HttpResponseNotModified() . Pero el mensaje de error dice 'QueryDict' object is not callable. - Changzhi

@changzhi, compruebe si el código tiene request.GET('..') otro lugar en la vista. Y reemplaza eso con request.GET.get('..')o elimínelo a menos que lo use. - falsedad

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.