Django项目的国家货币数据
项目描述
django-international是一个数据、模型和表单的组合,用于处理Django项目中与国家和货币相关的信息。该应用中使用的数据来自Django和维基百科以及XE.com,并且当数据源更新时,将不时更新。
如果安装了babel,语言名称数据将从babel获取。
international.models.countries_raw
这是一个以下格式的元组元组
countries_raw = ( (CO, CC, CNT, NUM, FN), ... )
CO是两个字母的大陆代码。 CC是按照ISO 3166-1标准的国家代码。 CNT是按照ISO 3166-1标准的三个字母代码。 NUM是按照ISO-3166-1标准的三位数代码。 FN是作为可翻译字符串的国家全名(用django.util.translation.ugettext包装)。
此元组将在运行时处理以生成与选择兼容的元组。
请注意,某些国家名称已被修改,并且与维基百科上的原始列表相比,选择元组将省略任何出现在括号中的内容。
international.models.countries
这是一个与 Django 模型/表单字段中传递的 choices 参数兼容的元组元组。值是两字母的国家代码,显示值是不包含括号内部分的全称国家名。
如果将 use_static 参数传递给构造函数,或 COUNTRY_FORM_USE_STATIC 配置设置为 True,则此元组也用作国家表单中的 choices 参数。
international.models.currencies
这是一个与 Django 模型/表单字段中传递的 choices 参数兼容的元组元组。值是 ISO 4217 3字母货币代码,显示值是相同的代码和全称货币名。例如
('USD', 'USD - United States Dollar')
此元组用作货币表单中 ChoicesField 的 choices 参数。
international.models.languages
此列表提供了与语言本名和英语名称配对的本地标识符(例如,'en_US')的与 choices 兼容的元组列表。对于本地名称为英语的语言,不使用翻译。例如
jp 日本語 (Japanese) en_US U.S. English
如果未安装 babel,则此列表为空,但如果不需要语言列表,安装 babel 不是必需的。
internationa.models.languages_native
与 international.models.languages 相同,但仅使用名称的本地版本作为标签。与其他语言列表一样,只有当安装了 babel 时,此列表才会被填充。
international.models.languages_english
与 international.models.languages 相同,但仅使用名称的英语版本作为标签。与其他语言列表一样,只有当安装了 babel 时,此列表才会被填充。
international.models.Country
models 模块包含一个 Country 模型。它是一个完整的模型(不是抽象的),并且打算通过外键从其他模块链接。
Country.code
此字段包含按照 ISO 3166-1 alpha 2 标准的国家两字母 ISO 代码。该字段由允许在 维基百科 上找到的所有国家完整集合的选择约束。
国家的全称是可翻译的字符串,可以使用标准的 Django API 显示名称来显示。
>>> c = Country(code='AR', continent='SA') >>> c.get_code_display() u'Argentina'
Country.continent
此字段包含按照 维基百科 的两字母洲际代码。这些代码仅限于
AF – 非洲
AS – 亚洲
EU – 欧洲
NA – 北美洲
SA – 南美洲
OC – 大洋洲
AN – 南极洲
全称是可翻译的,可以使用 Django 的标准显示名称 API 获取。
>>> c = Country(code='AR', continent='SA') >>> c.get_continent_display() u'South America'
international.forms.CountryForm
构造函数使用通常的表单参数和一些附加参数。
CountryForm(*arg, use_static=False, include_empty=False, empty_value='', empty_label='All countries', **kwarg)
这是一个简单的表单,包含一个名为 country 的单个 ChoiceField 字段。它被标记为可选,有一个可翻译的标签,读作“国家”,并且初始值为空字符串。
可以使用配置设置或构造函数参数来控制此表单的一些方面。任何标准 Django 表单接受的参数也是可接受的(例如,initial 或 data)。请注意,构造函数参数始终优于设置。
以下部分描述了可用的配置设置和相应的构造函数参数。
- COUNTRY_FORM_USE_STATIC 或 use_static
这些选项控制是否使用 countries 元组或使用来自 Country 模型的现有国家作为字段的选项。如果使用模型对象,它们将在每次表单初始化时从数据库中读取。目前没有涉及缓存。
- COUNTRY_FORM_INCLUDE_EMPTY 或 include_empty
是否在选择项中包含一个“空”项。这可以根据您的需求在视图中被视为一个 None 值。如果设置为 True,将向选择项元组前添加一个单元素的两元组,该两元组使用 COUNTRY_FORM_EMPTY_VALUE 设置指定的空值或 empty_value 构造函数参数,以及与 COUNTRY_FORM_EMPTY_LABEL 设置或 empty_label 构造函数参数匹配的标签。
- COUNTRY_FORM_EMPTY_VALUE 或 empty_value
用作空的值。默认为空字符串。
- COUNTRY_FORM_EMPTY_LABEL 或 empty_label
用作空项显示值的值。默认为可翻译字符串“所有国家”。
international.forms.CurrencyForm
与 CountryForm(参见 international.forms.CountryForm)一样,CurrencyForm 可以使用额外的参数调用
CurrencyForm(*arg, include_empty=False, empty_value='', empty_label='All currencies', **kwarg)
一个简单的表单,有一个简单的名为 currency 的 ChoiceField 字段。它使用 currencies 元组作为选择参数。
此表单具有与 CountryForm 表单类似的配置参数。
- CURRENCY_FORM_INCLUDE_EMPTY 或 include_empty
是否在选择项中包含一个空项。空项的值和标签由 CURRENCY_FORM_EMPTY_VALUE 和 CURRENCY_FORM_EMPTY_LABEL 设置或 empty_value 和 empty_label 构造函数参数控制。
- CURRENCY_FORM_EMPTY_VALUE 或 empty_value
控制空项的值。默认为 ‘’。
- CURRENCY_FORM_EMPTY_LABEL 或 empty_label
控制用于空项的标签。默认为可翻译字符串“所有货币”。
international.forms.CountryCurrencyForm
这是一个实验性功能,它将 CountryForm 和 CurrencyForm 合并成一个表单。此表单受适用于简单表单的设置和构造函数参数的控制。
此功能尚未经过彻底测试(尤其是构造函数参数),但它已知与配置设置一起按预期工作。
有关更多信息,请参阅 international.forms.CountryForm 和 international.forms.CurrencyForm。
固定装置
international/fixtures/ 目录包含一组可以使用 loaddata 管理命令加载的固定值。固定值基于 countries_raw 元组生成,并包含 Country 模型的数据。它故意不是初始数据固定值,因为 Country 模型的目的是创建一个可编辑的国家列表,而不是将它们硬编码。初始数据固定值会在每次使用 syncdb 命令时覆盖数据,因此它将有效地无效化模型的非常目的。
贡献者
Theo Chatzimichos (https://bitbucket.org/tampakrap)
报告错误
可以通过 Bitbucket 问题跟踪器 报告错误。
项目详情
下载文件
下载适用于您平台上的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。