From 16297e7d5e3a6b0287d114e95d1d544995618c93 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Thu, 9 Jan 2020 15:41:54 +0000 Subject: [3.0.x] Fixed #31154 -- Added support for using enumeration types in templates. Enumeration helpers are callables, so the template system tried to call them with no arguments. Thanks Rupert Baker for helping discover this. Backport of 5166097d7c80cab757e44f2d02f3d148fbbc2ff6 from master --- tests/model_enums/tests.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'tests') diff --git a/tests/model_enums/tests.py b/tests/model_enums/tests.py index e1810e673a..1136114807 100644 --- a/tests/model_enums/tests.py +++ b/tests/model_enums/tests.py @@ -4,6 +4,7 @@ import ipaddress import uuid from django.db import models +from django.template import Context, Template from django.test import SimpleTestCase from django.utils.functional import Promise from django.utils.translation import gettext_lazy as _ @@ -149,6 +150,11 @@ class ChoicesTests(SimpleTestCase): with self.subTest(member=member): self.assertEqual(str(test[member.name]), str(member.value)) + def test_templates(self): + template = Template('{{ Suit.DIAMOND.label }}|{{ Suit.DIAMOND.value }}') + output = template.render(Context({'Suit': Suit})) + self.assertEqual(output, 'Diamond|1') + class Separator(bytes, models.Choices): FS = b'\x1c', 'File Separator' -- cgit v1.2.1