#37050: Improve simple_tag / simple_block_tag error message when as is used
without
a variable name
-------------------------------------+-------------------------------------
Reporter: shimafallah | Type:
| Cleanup/optimization
Status: new | Component: Template
| system
Version: 6.0 | Severity: Normal
Keywords: | Triage Stage:
| Unreviewed
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 1 | UI/UX: 0
-------------------------------------+-------------------------------------
When using Library.simple_tag() or Library.simple_block_tag(), templates
that end with as but omit the target variable currently raise a generic
argument error. This is valid behavior (it fails), but the message is
unclear for template authors.
**Examples**
{% load custom %}{% one_param 37 as %}
{% load custom %}{% div as %}content{% enddiv %}
Current behavior
A generic TemplateSyntaxError is raised from argument parsing, which does
not clearly explain that the variable name after as is missing.
Expected behavior
Raise a clear, direct error, e.g.:
'one_param' tag requires a variable name after 'as'
'div' tag requires a variable name after 'as'
What this change does
Adds an explicit check in both compile paths (simple_tag and
simple_block_tag) for trailing as without a following variable.
Raises a specific TemplateSyntaxError message before normal argument
parsing.
Tests
Adds 4 regression tests covering invalid trailing as usage:
simple tag without args: {% no_params as %}
simple tag with args: {% one_param 37 as %}
simple block tag without args: {% div as %}...{% enddiv %}
simple block tag with args: {% one_param_block 37 as %}...{%
endone_param_block %}
These tests verify the new explicit error messages.
--
Ticket URL: <https://code.djangoproject.com/ticket/37050>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/django-updates/0107019da2eb15ec-2ef6f056-4db6-4ec6-97a3-6103ce5393e6-000000%40eu-central-1.amazonses.com.