tutorial template plantillas objetos filtros extender crear django templates

template - ¿Cómo pasar un argumento a un método en una variable de plantilla en Django?



plantillas django (3)

Estoy utilizando la biblioteca lxml para definir una variable (categoría) en una vista. lxml proporciona un método .get para recuperar atributos personalizados. Me gustaría usarlo en la plantilla así:

{{ category.get("foo") }}

Sé que al usar variables de plantilla no es necesario usar paréntesis, pero recibo el siguiente error:

{{ category.get "foo" }}

No se pudo analizar el resto: ''"foo"'' de ''category.get "foo"''

Supongo que hay algo mal con mi sintaxis, pero Google no ha sido de ayuda. Los documentos de django dicen que los métodos se buscan utilizando a .



Estoy de acuerdo con la filosofía de separar la lógica del diseño, pero hay una excepción. Actualmente estoy escribiendo un método get_image (height = xxx, width = xxx) para un modelo. Claramente, el diseñador de plantillas debe decidir el tamaño de la imagen como última etapa. Aunque supongo que lo correcto es escribir una etiqueta personalizada, pero ¿por qué restringir?


No puedes pasar un argumento a un atributo llamable como este. Tire del valor en la vista o escriba una etiqueta de plantilla personalizada para hacerlo.