Skip to main content

Django 的菲律宾地理模型

项目描述

派皮 PyPI - Python 版本 PyPI - Django 版本 特拉维斯 CI CodeFactor 等级 编解码器 许可证 - 麻省理工学院

Django 的菲律宾地理模型

django-ph-geography提供了整合菲律宾地区、省、市和描笼涯的模型。

数据取自菲律宾统计局 (PSA) 于 2020 年 3 月 31 日发布的菲律宾标准地理代码 (PSGC) ( https://psa.gov.ph/classification/psgc/downloads/PSGC%20Publication%20March2020.xlsx )。

目录

安装

使用pip安装:

pip install django-ph-geography

ph_geography添加到INSTALLED_APPS

INSTALLED_APPS = [
    ...
    'ph_geography',
]

将应用模型迁移到数据库:

python manage.py migrate ph_geography

加载初始数据:

python manage.py phgeofixtures

楷模

ph_geography.models.Region

区域模型。可用字段有:

  • code ( CharField<max_length=10, unique=True, null=False> ):地区的唯一地理代码。

  • name ( CharField<max_length=100, null=False)> ): 地区的地理名称。

  • 人口PositiveIntegerField<null=True>):基于 2015 POPCEN 的人口计数。空值意味着没有数据可用。

  • island_group ( CharField<max_length=1,choices=ISLAND_GROUP_CHOICES,null=False> ):区域所在的岛群。可能的值基于模型属性ISLAND_GROUP_CHOICES中的项目:

    • ISLAND_GROUP_LUZON ( 'L' ) - 吕宋岛

    • ISLAND_GROUP_VISAYAS ( 'V' ) - 维萨亚斯

    • ISLAND_GROUP_MINDANAO ( 'M' ) - 棉兰老岛

  • is_active ( BooleanField<null=False, default=True> ):切换区域是否处于活动状态 ( True ) 或不处于活动状态 ( False )。

ph_geography.models.Province

省示范。可用字段有:

  • code ( CharField<max_length=10, unique=True, null=False> ):地区的唯一地理代码。

  • name ( CharField<max_length=100, null=False)> ): 地区的地理名称。

  • 人口PositiveIntegerField<null=True>):基于 2015 POPCEN 的人口计数。空值意味着没有数据可用。

  • region ( ForeignKey<Region, related_name =' provinces', related_query_name ='province', null=False, on_delete=models.CASCADE> ):省所在地区。

  • income_class ( CharField<max_length=1, choice=INCOME_CLASS_CHOICES, null=False, blank=True> ):收入分类。空白值表示没有可用的数据。可能的值基于模型属性INCOME_CLASS_CHOICES中的项目:

    • INCOME_CLASS_1 ( '1' ) - 第一名

    • INCOME_CLASS_2 ( '2' ) - 第二

    • INCOME_CLASS_3 ( '3' ) - 第三

    • INCOME_CLASS_4 ( '4' ) - 第 4 名

    • INCOME_CLASS_5 ( '5' ) - 第 5 名

    • INCOME_CLASS_6 ( '6' ) - 第 6名

    • INCOME_CLASS_SPECIAL ( 'S' ) - 特别

  • is_active ( BooleanField<null=False, default=True> ):切换省份是否处于活动状态 ( True ) 或不 ( False )。

可用属性:

  • island_group:对Region字段island_group的引用。

ph_geography.models.Municipality

直辖市和城市的模型。可用字段有:

  • code ( CharField<max_length=10, unique=True, null=False> ):地区的唯一地理代码。

  • name ( CharField<max_length=100, null=False)> ): 地区的地理名称。

  • 人口PositiveIntegerField<null=True>):基于 2015 POPCEN 的人口计数。空值意味着没有数据可用。

  • ( ForeignKey<Province, related_name =' municipalities', related_query_name ='municipality', null=False, on_delete=models.CASCADE> ): 直辖市所在的省。

  • income_class ( CharField<max_length=1, choice=INCOME_CLASS_CHOICES, null=False, blank=True> ):收入分类。空白值表示没有可用的数据。可能的值基于模型属性INCOME_CLASS_CHOICES中的项目:

    • INCOME_CLASS_1 ( '1' ) - 第一名

    • INCOME_CLASS_2 ( '2' ) - 第二

    • INCOME_CLASS_3 ( '3' ) - 第三

    • INCOME_CLASS_4 ( '4' ) - 第 4 名

    • INCOME_CLASS_5 ( '5' ) - 第 5 名

    • INCOME_CLASS_6 ( '6' ) - 第 6名

    • INCOME_CLASS_SPECIAL ( 'S' ) - 特别

  • is_city ( BooleanField<null=False> ):切换以定义自治市是否为城市 ( True ) 或不是 ( False )。

  • is_capital ( BooleanField<null=False> ):切换以定义自治市是否为首都 ( True ) 或不是 ( False )。

  • city_class ( CharField<max_length=1, choice=CITY_CLASS_CHOICES, null=False, blank=True> ):城市法律分类。空白值表示没有可用的数据。可能的值基于模型属性CITY_CLASS_CHOICES中的项目:

    • CITY_CLASS_COMPONENT_CITY ( 'C' ) - CC

    • CITY_CLASS_INDEPENDENT_COMPONENT_CITY ( 'I' ) - ICC

    • CITY_CLASS_HIGHLY_URBANIZED_CITY ( 'H' ) - HUC

  • is_active ( BooleanField<null=False, default=True> ):切换自治市是否处于活动状态 ( True ) 或不 ( False )。

可用属性:

  • island_group:对Region字段island_group的引用。

  • region:参考字段区域

ph_geography.models.Barangay

描笼涯模型。可用字段有:

  • code ( CharField<max_length=10, unique=True, null=False> ):地区的唯一地理代码。

  • name ( CharField<max_length=100, null=False)> ): 地区的地理名称。

  • 人口PositiveIntegerField<null=True>):基于 2015 POPCEN 的人口计数。空值意味着没有数据可用。

  • 自治市( ForeignKey<Municipality>, related_name =' barangays', related_query_name ='barangay', null=False, on_delete=models.CASCADE> ):barangay 所在的自治市。

  • is_urban ( NullBooleanField<null=False> ):切换以定义 barangay 是城市 ( True ) 还是农村 ( False )。空值意味着没有数据可用。

  • is_active ( BooleanField<null=False, default=True> ):切换 barangay 是否处于活动状态 ( True ) 或不 ( False )。

可用属性:

  • island_group:对Region字段island_group的引用。

  • :参考直辖市字段

  • region:引用属性字段区域

猴子补丁

迁移模型并通过固定装置加载初始数据后,您可以使用提供的方法对django-ph-geography模型进行修补(如果您喜欢它)以满足您的需求:

添加新字段

您可以使用抽象模型类ph_geography.models.PhilippineGeography提供的自定义方法add_field向提供的模型添加字段。对抽象模型使用上述方法会将操作应用于所有子类。

例子:

from django.db import models

from ph_geography.models import PhilippineGeography
from ph_geography.models import Region


# Add field to Region, Province, Municipality, Barangay, and any subclass models of PhilippineGeography
PhilippineGeography.add_field('all_models', models.BooleanField(null=True))

# Add field 'single_model' to Region
Region.add_field('single_model', models.BooleanField(null=True))

删除现有字段

您可以使用抽象模型类ph_geography.models.PhilippineGeography提供的自定义方法remove_field将字段删除到提供的模型中。对抽象模型使用相同的方法会将操作应用于所有子类。

例子:

from ph_geography.models import PhilippineGeography
from ph_geography.models import Municipality
from ph_geography.models import Region


# Remove field to Region, Province, Municipality, Barangay, and any subclass models of PhilippineGeography
PhilippineGeography.remove_field('population')

# Remove field 'island_group' from Region
Region.remove_field('island_group')

# Multiple fields to remove are supported
Municipality.remove_field('is_city', 'is_capital')

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

django-ph-geography-1.0.0.tar.gz (696.2 kB 查看哈希)

已上传 source

内置分布

django_ph_geography-1.0.0-py3-none-any.whl (764.0 kB 查看哈希

已上传 py3