#22798: pluralize filter should pluralize float/Decimal values between 1 and 2
---------------------------------+--------------------
Reporter: Odd_Bloke | Owner: nobody
Type: Bug | Status: new
Component: Template system | Version: 1.6
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
---------------------------------+--------------------
The pluralize filter works as expected for floats/Decimals outside of the
range 1-2:
{{{
>>> pluralize(0.9)
u's'
>>> pluralize(2.1)
u's'
}}}
However, when applied to a decimal number between 1 and 2, it
(incorrectly) does not pluralize:
{{{
>>> pluralize(1.2)
u''
}}}
Not only is this incorrect from an English standpoint, it also contradicts
pluralize's docstring: "Returns a plural suffix if the value is not 1."
The problem appears to be at
[https://github.com/django/django/blob/master/django/template/defaultfilters.py#L937
line 937] where the given value is converted directly to an integer; this
chops the decimal part of the number off, making it appear to be 1.
The specific use case for this is:
{{{
{{ widget_count|floatformat:"-2" }} widget{{ widget_count|pluralize }}
}}}
This will produce "0.5 widgets", "1 widget", and "2.1 widgets" correctly,
but "1.2 widget" incorrectly.
(This ticket is a descendant of #16723, but that ticket was about a
broader issue that encompassed this, and so ended up being closed as
invalid.)
--
Ticket URL: <https://code.djangoproject.com/ticket/22798>
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 post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/052.aaa25831ce4ef90100329d165ec410ce%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.