【发布时间】:2011-05-10 06:42:39
【问题描述】:
我如何让 django 意识到 countries 的单数形式是 country 而不是 countrie
【问题讨论】:
-
姜戈?还是它的特定部分?
我如何让 django 意识到 countries 的单数形式是 country 而不是 countrie
【问题讨论】:
从docs 开始,如果您有一个名为 num_countries 的模板变量,您可以编写如下内容:
countr{{ num_countries|pluralize:"y,ies" }}
【讨论】:
我知道这个问题是专门针对模板提出的,但对于任何人(就像我一样)在“Python 端”Django 中搜索解决方案时偶然发现这个问题
from django.template.defaultfilters import pluralize
def pluralize_countries(countries):
return 'countr{}'.format(pluralize(countries, 'y,ies')
pluralize 函数查看第一个参数,看它是否是复数形式。假设第一个参数始终是某种数组。所以:
if len(countries) > 1:
# PLURAL!
else:
# SINGLE!
然后,它会查看第二个参数,看看如果第一个参数是单数还是复数,该怎么办。 复数代码的粗略草图如下所示:
def pluralize(arr, options):
split_options = options.split(',')
if len(arr) > 1:
return split_options[1]
else:
return split_options[0]
我知道复数形式稍微复杂一些。但简而言之,这就是它的作用。
【讨论】: