diff --git a/epdb/templatetags/templatetags.py b/epdb/templatetags/templatetags.py new file mode 100644 index 00000000..6c250e63 --- /dev/null +++ b/epdb/templatetags/templatetags.py @@ -0,0 +1,21 @@ +from django import template +from pydantic import AnyHttpUrl, ValidationError +from pydantic.type_adapter import TypeAdapter + +register = template.Library() + +url_adapter = TypeAdapter(AnyHttpUrl) + + +@register.filter +def classname(obj): + return obj.__class__.__name__ + + +@register.filter +def is_url(value): + try: + url_adapter.validate_python(value) + return True + except ValidationError: + return False