[pyar] Debug de objetos pasados a templates de Django

Iván Raskovsky raskovsky en gmail.com
Jue Nov 17 11:53:14 ART 2011


2011/11/17 Federico Mendez <mendezfederico87 en gmail.com>:
> On 11/17/2011 12:31 PM, Ramiro Morales wrote:
>
> 2011/11/17 Federico Mendez <mendezfederico87 en gmail.com>:
>
> En URLConf tengo esto...
> ...
> from coltrane.models import Link
>
> link_info_dict = {
>    'queryset': Link.objects.all(),
>    'date_field': 'pub_date',
> }
>
> urlpatterns = patterns('django.views.generic.date_based',
>    ...
>    ...
>
> url(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$',
>        'object_detail',          #entry available in variable "object"
>        link_info_dict,
>        'coltrane_link_detail'),
>    ...
>    ...
> )
>
> Lo que quiero saber es que hay en el "object" del template...
>
> Si lo que queres es ver el contenido en la página, echale una mirada al
> template tag 'debug', simplemete insertalo en el template
> con un {% debug %}. No lo usé nunca, pero ayer aprndí que
> existe.
>
> Otras posibilidades son suar algocomo la Django debug Toolbar.
> O crear uan vista tuya que reciba el mismo parámetro, lo imprima
> e cosola y llame con el mismo a la vista original
> django.views.generic.date_based.object_detail.
>
> corresponde al object_detail que le paso a traves de
> django.views.generic.date_based.
>
> Otro tema y para dejar claro lo que te comentaba:
>
> django.views.generic.date_based.object_detail es una vista Django.
>
> O sea un callable Pyhton que recibe un request mas parámetros
> (en este caso un parámetro 'object')
>
> En el caso de la vista genérica que estás usando ese callable es
> una función, la función object_detail() que está en el módulo
> django.views.generic.date_based.
>
> El objeto en particular que quiero examinar es object.tags. Cuando pongo {{
> object.tags|wordcount }}
>  me devuelve "2", pero si hago un {% if object.tags.count %} blablabla {%
> endif %} esto no me muestra nada... por eso quiero inspeccionar que metodos
> puedo aplicarle al object.tags, o al menos entender por que no puedo usar el
> count.  Si pongo solo {{% if object.tags %}} me tira este error:
>
> TemplateSyntaxError:
>
> Caught NoReverseMatch while rendering: Reverse for
> 'coltrane_link_archive_tag' with arguments '('',)' and keyword arguments
> '{}' not found.
>
> Aca esta el codigo del template si a alguien le interesa:
> http://dpaste.com/658059/
>
>
>
>
>  --
> # ---- Federico Mendez ----
> #
> # Skype: mendezfederico87
> # Web: http://programmingmate.com
> # CV: http://programmingmate.com/my-cv
> # GitHub: http://github.com/muayguy
> # Linkedin: http://it.linkedin.com/in/mendezfederico
> #
> # ---- Federico Mendez ----
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>

Te sugiero revisar https://github.com/codysoyland/django-template-repl

Con esto podés abrir un shell en el medio del template ya sea de
lenguaje "django template" o python.

Igual por el error me imagino que object.tags te genera algún tipo de
link para cada tag y en la generación de ese link es donde está
pinchando. Revisa las instrucciones de como instalar la app, seguro
que está faltando alguna url en urls.py o algo así.

Saludos,
    Iván



More information about the pyar mailing list