Django项目的可管理国家列表
emencia.django.countries的Python项目详细描述
一个Django应用程序,它包含可以按优先级顺序显示的世界国家列表。
用于需要订购国家/地区列表的表单或模型。
内容
Links
- 下载他的PyPi package;
- 克隆到他的repository;
Install
首先安装软件包:
pip install emencia.django.countries
在“设置”中将其添加到已安装的django应用程序中:
INSTALLED_APPS=(...'emencia.django.countries',...)
最后运行django命令migrate来安装应用程序数据库表,这也将用各国的初始数据填充Country模型。
Usage
默认情况下,当加载fixture时,所有国家的级别都为0, 默认值,按字母顺序显示。
>>>fromemencia.django.countries.modelsimportCountry>>>Country.objects.all()[<Country:Afghanistan>,<Country:Albania>,<Country:Algeria>,'...(remaining elements truncated)...']
所以如果你不想把阿富汗作为你名单上的第一个国家, 对于所需的所有国家/地区,level属性都有一个较高的值。
现在,如果要检索您订购的国家/地区列表,请执行以下操作:
>>>france=Country.objects.get(iso='FR')>>>france.level=100>>>france.save()>>>Country.objects.all()[<Country:France>,<Country:Afghanistan>,<Country:Albania>,'...(remaining elements truncated)...']
但是,如果您只需要一个具有level属性集的国家的简短列表,则可以执行以下操作:
>>>Country.objects.leveled()[<Country:France>]
这将只返回级别值不同于0的国家。
Template Context Processors
有时,让所有国家都在呈现模板的上下文中是有用的, 因此提供了一个模板上下文处理器。
>>>TEMPLATE_CONTEXT_PROCESSORS=(...# Your template context processors...'emencia.django.countries.context_processors.countries',...)
此模板上下文处理器在上下文中提供2个变量:
- 国家/地区列表
- 国家排名
Version 0.2.1 - 2015/12/10
- 修复了setup.py; 中HISTORY.rst的错误路径
Version 0.2.0 - 2015/12/10
- 确保与Django>=1.7:
- 兼容
- 使用get_querysetmethod; 在模型管理器中添加了兼容性支持
- 添加了django migration;
- 现在从数据迁移加载初始数据固定装置,因为Django>=1.7不再自动执行此操作;
- 更新setup.py以获得更好的包分类器和包信息;
Version 0.1.1 - 2013/09/26
- 修复缺少fixture数据文件规则的包清单;
Version 0.1 - 2013/05/03
- 作为包首次发布;