diff --git a/src/pretix/helpers/format.py b/src/pretix/helpers/format.py index 04253b5b7c..843b22650f 100644 --- a/src/pretix/helpers/format.py +++ b/src/pretix/helpers/format.py @@ -89,6 +89,13 @@ class SafeFormatter(Formatter): # Ignore format_spec return super().format_field(self._prepare_value(value), '') + def convert_field(self, value, conversion): + # Ignore any conversions + if conversion is None: + return value + else: + return str(value) + def format_map(template, context, raise_on_missing=False, mode=SafeFormatter.MODE_RICH_TO_PLAIN, linkifier=None) -> FormattedString: if isinstance(template, FormattedString): diff --git a/src/tests/helpers/test_format.py b/src/tests/helpers/test_format.py index 5ed3ac9b15..7c27717615 100644 --- a/src/tests/helpers/test_format.py +++ b/src/tests/helpers/test_format.py @@ -29,6 +29,8 @@ def test_format_map(): assert format_map("Foo {baz}", {"bar": 3}) == "Foo {baz}" assert format_map("Foo {bar.__module__}", {"bar": 3}) == "Foo {bar.__module__}" assert format_map("Foo {bar!s}", {"bar": 3}) == "Foo 3" + assert format_map("Foo {bar!r}", {"bar": '3'}) == "Foo 3" + assert format_map("Foo {bar!a}", {"bar": '3'}) == "Foo 3" assert format_map("Foo {bar:<20}", {"bar": 3}) == "Foo 3"