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如何在mybatis中捕获SQLException   java Spring XML自动连线记录器不确定目标类名   JavaSpringDataJPA:使用联接表进行排序和分页   JAVA循环的lang.NullPointerException数组   带Jetty和空密码的java双向SSL   当对象为类型时,java在tableview上显示图像   如何在GWT中从javascript到java获取返回类型“any”?(泛型类型传递)   java从ListView Android中的微调器获取选定值   java缓冲图像中较小的图像被裁剪,我如何解决这个问题?   java Spring MVC 3.1:使用SimpleUrlHandlerMapping和通用基本控制器时的问题   java在每次调用时生成唯一的随机数   java libGDX:在屏幕上移动多边形   java TextView未在应用程序中居中,但在match_约束中居中   在python中重复运行同一java函数的最佳方式是什么?