[Django] #37050: Improve simple_tag / simple_block_tag error message when as is used without a variable name

1 view
Skip to first unread message

Django

unread,
7:26 PM (3 hours ago) 7:26 PM
to django-...@googlegroups.com
#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.

Django

unread,
8:21 PM (2 hours ago) 8:21 PM
to django-...@googlegroups.com
#37050: Improve simple_tag / simple_block_tag error message when as is used without
a variable name
-------------------------------------+-------------------------------------
Reporter: Shima Fallah | Owner: Shima
Type: | Fallah
Cleanup/optimization | Status: assigned
Component: Template system | Version: 6.0
Severity: Normal | Resolution:
Keywords: | Triage Stage:
| Unreviewed
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 1 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Shima Fallah):

* owner: (none) => Shima Fallah
* status: new => assigned

Comment:

I have submitted a pull request here:
https://github.com/django/django/pull/21133
--
Ticket URL: <https://code.djangoproject.com/ticket/37050#comment:1>
Reply all
Reply to author
Forward
0 new messages