Django项目的可管理国家列表

emencia.django.countries的Python项目详细描述


一个Django应用程序,它包含可以按优先级顺序显示的世界国家列表。

用于需要订购国家/地区列表的表单或模型。

Requires

  • setuptools
  • Django>;=1.4(应与django 1.8及更高版本兼容);

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个变量:

  • 国家/地区列表
  • 国家排名

Template tags

但总的来说,把所有国家都放在这个背景下是浪费资源, 因为它为每个请求发出一个数据库请求,所以已经实现了模板标记。

在模板中,要获取国家列表,只需执行此操作。

{% load countries_tags %}

{% get_countries %}

它将在模板的本地上下文中加载名为countries的变量中的国家列表 但是,如果要更改此变量的名称,请使用以下语法。

{% get_countries as MY_COUNTRIES %}

如果您只想拥有国家的简短列表,请使用此标记。

{% get_countries_leveled as MY_COUNTRIES %}

当然,同样的语法也适用于这个标记。

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

  • 作为包首次发布;

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java RMI客户端访问被拒绝   java让JavaFX事件监听器与我的方法对话   java与xml spring配置相关   java当我在字符串中插入这个XML Soap请求时,为什么Eclipse会给我一个错误?   音频音频合成   java创建了一个Tic-Tac-Toe应用程序,我有一个bug,它每次在同一个正方形上声明一个平局   java为返回的字符串值设置参数   Java中的ClassFormatError   java在启动后更改Spring云配置服务器uri   用Java中的自定义类替换默认字符串类   java junit测试套件:ClassNotFoundException   java自定义对象集包含相同的对象   通过关系查找的java Spring数据CRUDepository   java将数据存储到aerospike中   java使用itextpdf将添加内容的pdf转换为安卓中的位图   java正在遍历队列的concurrentHashMap,以查看是否所有队列都是空的,而其他线程可能会添加到队列中   java Hibernate:未找到本机查询异常   java Mockito准确地验证所有参数   java我可以在它自己的类中声明一个对象吗?