{{{
>>> 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.
* needs_better_patch: => 0
* needs_docs: => 0
* needs_tests: => 0
* stage: Unreviewed => Accepted
Comment:
Aaah now I get it. Yes, the current behaviour should be changed for
decimals when `1 < d < 2`. Sorry for closing incorrectly the other ticket.
--
Ticket URL: <https://code.djangoproject.com/ticket/22798#comment:1>
* has_patch: 0 => 1
Comment:
PR: https://github.com/django/django/pull/2789
Thanks.
--
Ticket URL: <https://code.djangoproject.com/ticket/22798#comment:2>
* status: new => closed
* resolution: => fixed
Comment:
In [changeset:"868ff4e37c1e4cfaf7283496c24f6e711ad66005"]:
{{{
#!CommitTicketReference repository=""
revision="868ff4e37c1e4cfaf7283496c24f6e711ad66005"
Fixed #22798 -- `pluralize()` now adds plural_suffix for any `1 < d < 2`
Thanks Odd_Bloke for the report.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/22798#comment:3>