diff --git a/src/backend/InvenTree/report/templatetags/report.py b/src/backend/InvenTree/report/templatetags/report.py index 0c1dcab6e6..6329b5a9dc 100644 --- a/src/backend/InvenTree/report/templatetags/report.py +++ b/src/backend/InvenTree/report/templatetags/report.py @@ -343,7 +343,10 @@ def parameter( Returns: A Parameter object, or None if not found """ - if not hasattr(instance, 'parameters'): + if instance is None: + raise ValueError('parameter tag requires a valid Model instance') + + if not isinstance(instance, Model) or not hasattr(instance, 'parameters'): raise TypeError("parameter tag requires a Model with 'parameters' attribute") return ( @@ -354,7 +357,7 @@ def parameter( @register.simple_tag() -def part_parametr(instance, parameter_name): +def part_parameter(instance, parameter_name): """Included for backwards compatibility - use 'parameter' tag instead. Ref: https://github.com/inventree/InvenTree/pull/10699 diff --git a/src/backend/InvenTree/report/test_tags.py b/src/backend/InvenTree/report/test_tags.py index 6fdaf5cbe4..337b46e6b2 100644 --- a/src/backend/InvenTree/report/test_tags.py +++ b/src/backend/InvenTree/report/test_tags.py @@ -419,8 +419,14 @@ class ReportTagTest(PartImageTestMixin, InvenTreeTestCase): # Note, use the 'parameter' and 'part_parameter' tags interchangeably here self.assertEqual(report_tags.part_parameter(part, 'name'), None) self.assertEqual(report_tags.parameter(part, 'Template 1'), parameter) - # Test with an invalid part - self.assertEqual(report_tags.parameter(None, 'name'), None) + + # Test with a null part + with self.assertRaises(ValueError): + report_tags.parameter(None, 'name') + + # Test with an invalid model type + with self.assertRaises(TypeError): + report_tags.parameter(parameter, 'name') def test_render_currency(self): """Test the render_currency template tag."""