Necesitamos crear un filtro, como viene aquí. Aunque claro, ahora vamos a poner otros filtros como sigue:
proyecto/app/templatetags/mis-filtros.py
from django import template
register = template.Library()
@register.filter(name:'check_type')
def check_type(obj, stype):
try:
t = obj.__class__.__name__
return t.lower() == str(stype).lower()
except:
pass
return False
@register.filter(name:'field_type')
def field_type(field, ftype):
if ftype == '': #NOTA: Eso son dos comillas simples
return field.field.widget.__class__.__name__
return check_type(field.field.widget, ftype)
register = template.Library()
@register.filter(name:'check_type')
def check_type(obj, stype):
try:
t = obj.__class__.__name__
return t.lower() == str(stype).lower()
except:
pass
return False
@register.filter(name:'field_type')
def field_type(field, ftype):
if ftype == '': #NOTA: Eso son dos comillas simples
return field.field.widget.__class__.__name__
return check_type(field.field.widget, ftype)
En el html lo usamos así si queremos que actúe sabiendo el tipo de dato:
{% load mis-filtros %}
{% for field in form %}
{% if field|field_type:'Select' %}
La variable es select. Hacer lo que sea
{% endif %}
{% endfor %}
{% for field in form %}
{% if field|field_type:'Select' %}
La variable es select. Hacer lo que sea
{% endif %}
{% endfor %}
O así si queremos que nos muestre el tipo de dato que es:
{% load mis-filtros %}
{% for field in form %}
{{ field|field_type:'' }}{# NOTA: Eso son dos comillas simples#}
{% endfor %}
{% for field in form %}
{{ field|field_type:'' }}{# NOTA: Eso son dos comillas simples#}
{% endfor %}
Enlaces: djangosnippets stackoverflow questions
Si necesitas ayuda escribe a través del formulario de contacto en la parte derecha.Nota: Antes de acceder al formulario aparecerá un anuncio, que en 5 segundos podrás cerrar.
No hay comentarios:
Publicar un comentario
Gracias por comentar.
Si has realizado alguna consulta, responderemos lo antes posible. Gracias