urls tutorial examples example based python django django-views views

python - tutorial - httpresponse django example



Cómo pasar un objeto a HTML En Django view.py (2)

No puede pasar una instancia de modelo a RequestContext , porque RequestContext se diseñó para funcionar con la instancia de HttpRequest . Ver documentación .

Si desea mostrar su instancia de modelo en la plantilla, simplemente páselo en el contexto normal, como este:

def test_display(request): book = book.objects.all()[0] return render_to_response(''display.html'', {''book'': book})

Entonces su plantilla puede verse así:

<ul> <li>{{ book.title }}</li> <li>{{ book.author }}</li> </ul>

Espero que ayude.

Estoy aprendiendo django y desarrollo web y me resulta difícil averiguar cómo el HTML toma la solicitud y muestra la información.

En el siguiente código, quiero obtener el primer objeto libro (con dos atributos ''título'' ''autor'') y pasarlo a display.html para mostrar la información del atributo del objeto libro. Cuando intento el código a continuación

def test_display(request): request = book.objects.all()[0] return render_to_response(''display.html'', RequestContext(request));

El mensaje de error se muestra así.

el objeto ''libro'' no tiene el atributo ''META''

Pero en mi clase de libros en el models.py META está definido. ¿Cuál es el problema aquí? ¿No se supone que debo pasar el objeto como solicitud? Muchas gracias


Uh, estás usando RequestContext mal. No está esperando una instancia modelo ...

Elimine la línea que dice request = book.objects.all()[0]

def test_display(request): request = book.objects.all()[0] # ^^^^^^ you''re redefining request return render_to_response(''display.html'', RequestContext(request)); # ^ why;

También suponiendo que estaba tratando de usar RequestContext como una forma de pasar su libro a la plantilla, necesita pasarle un segundo argumento que es un diccionario de nombres var de contexto a valores.

RequestContext(request, {''book'': book.objects.all()[0]})