[Django] #37155: Allow templatetag `querystring` to start from an empty state

0 views
Skip to first unread message

Django

unread,
4:56 AM (7 hours ago) 4:56 AM
to django-...@googlegroups.com
#37155: Allow templatetag `querystring` to start from an empty state
-------------------------------------+-------------------------------------
Reporter: Sjoerd Job Postmus | Type: New
| feature
Status: new | Component: Template
| system
Version: 6.0 | Severity: Normal
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
The documentation for `querystring` starts with

> Outputs a URL-encoded formatted query string based on the provided
parameters.

But the current functionality is mostly limited to taking an existing
mapping; modifying that in-place, and *then* rendering that as a
querystring. (it defaults to `request.GET` if no mapping is provided).

When constructing an update for the querystring of the current view; this
feels natural. When constructing the querystring of a different view
(e.g.: a detail page where an attribute is rendered as a clickable link to
some list filtered by that value), the current querystring is not
relevant.

Use-case:

Instead of writing

{{{
<a href="{% url 'product_list' %}?vendor={{ vendor.pk|unlocalize}}">{{
vendor.name }}</a>
}}}

I would like to be able to write

{{{
<a href="{% url 'product_list' %}{% querystring None vendor=vendor.pk
%}">{{ vendor.name }}</a>
}}}

(Note; the savings will be a lot better if there is more than 1
querystring parameter)

The change to the `querystring` would be reasonable minimal; and it would
unlock an easier way of writing querystrings in more scenarios than
currently available.

A workaround may be to create an empty dictionary, and provide that either
via the context or a contextprocessor; but I feel that's less natural than
just being able to write 'None' for starting with an empty dictionary.

If accepted; I would be happy to pick up the development.
--
Ticket URL: <https://code.djangoproject.com/ticket/37155>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
Reply all
Reply to author
Forward
0 new messages