django-global-places


Namedjango-global-places JSON
Version 0.8.7 PyPI version JSON
download
home_pagehttps://github.com/lucacitta/Django-GlobalPlaces
SummaryDjango Global Places is a simple Django app to provide a model for global places.
upload_time2024-05-27 12:28:08
maintainerNone
docs_urlNone
authorlucacitta
requires_python>=3.8
licenseMIT
keywords django global places
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# Django-GlobalPlaces
Plug and play configurations and data for countries, states and cities from all over the globe.

## Requirements
- Django >= 3.8 *
- Python >= 3.8 *
- Django Rest Framework >=  3.13 *
	- This requirement is only necessary if you are using the provided REST endpoints.
- django-filter >= 23.0 *
	- This requirement is only necessary if you are using the provided REST endpoints.


(*) Not tested with earlier versions.

## Quick Setup

Install package

    pip install django-global-places
    
Add `django_global_places` app to INSTALLED_APPS in your django settings.py:

```python
INSTALLED_APPS = (
    ...,
    "django.contrib.staticfiles",
    'django_global_places'
    'rest_framework', # required only if using the provided REST endpoints
     ...,
)
```
    
(Optional) Include viewset routes

```python
from django_global_places.urls import router as django_global_places_router
your_router.registry.extend(django_global_places_router.registry)
```
    

### Explanation


This library handles the configuration and creation of `Countries`, `States`, and `Cities`.

After installation, you need to specify three parameters in your `settings.py` file:

-   `INCLUDE_LOCATION`: Enables the creation of the models.
-   `LOCATION_SCOPE`: Determines the scope of models required ('countries', 'states', or 'cities').
-   `INCLUDE_EXPANDED_COUNTRY`: Incorporates additional fields into the Country model.

Example:

    GLOBAL_PLACES = {
	    "INCLUDE_LOCATION": True,
	    "LOCATION_SCOPE": "state",
	    "INCLUDE_EXPANDED_COUNTRY": False,
    }


Once these variables are configured, your next steps are to run `makemigrations` and `migrate`.

To **populate** the newly created models, you should execute a Django command. This command will create all the necessary objects and update them if they already exist.

    python manage.py populate_global_places

### Rest endpoints

Three viewsets are included, one for each model: `Country`, `State`, and `City`. Each viewset features:

A list view displaying a summary of the objects.
A detail view presenting comprehensive information about each object.

- CountryViewSet:
	- url: global-places/countries
	- search fields: `name` and `iso3`
	- ordering fields: `id`, `name` and `iso3`

- StateViewSet:
	- url: global-places/states
	- search fields: `name` and `state_code`
	- ordering fields: `id`, `name` and `state_code`
	- filtering fields: `country`

- CityViewSet:
	- url: global-places/cities
	- search fields: `name`
	- ordering fields: `id` and `name`
	- filtering fields: `state`, `state__country`

Full examples [here](https://www.postman.com/restless-zodiac-765340/workspace/django-globalplaces/collection/18007906-46245b57-0675-4bfb-ae41-c71ee6f6f6f5?action=share&creator=18007906) in Postman collection.

### Acknowledgements

Special thanks to the [Countries States Cities Database](https://github.com/dr5hn/countries-states-cities-database) for providing the JSON files used for populating the data.

## Contributing

-   [Luca Cittá Giordano](https://www.linkedin.com/in/lucacittagiordano/)
    
-   [Matias Girardi](https://www.linkedin.com/in/matiasgirardi)

Maintained and developed by [Linkchar Software Development](https://linkchar.com/).



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/lucacitta/Django-GlobalPlaces",
    "name": "django-global-places",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "django global places",
    "author": "lucacitta",
    "author_email": "lucacitta.dev@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/2f/51/c15890763e967cce9d777b745444b9f109fa32edc98ab908be6269110fa1/django_global_places-0.8.7.tar.gz",
    "platform": null,
    "description": "\r\n# Django-GlobalPlaces\r\nPlug and play configurations and data for countries, states and cities from all over the globe.\r\n\r\n## Requirements\r\n- Django >= 3.8 *\r\n- Python >= 3.8 *\r\n- Django Rest Framework >=  3.13 *\r\n\t- This requirement is only necessary if you are using the provided REST endpoints.\r\n- django-filter >= 23.0 *\r\n\t- This requirement is only necessary if you are using the provided REST endpoints.\r\n\r\n\r\n(*) Not tested with earlier versions.\r\n\r\n## Quick Setup\r\n\r\nInstall package\r\n\r\n    pip install django-global-places\r\n    \r\nAdd `django_global_places` app to INSTALLED_APPS in your django settings.py:\r\n\r\n```python\r\nINSTALLED_APPS = (\r\n    ...,\r\n    \"django.contrib.staticfiles\",\r\n    'django_global_places'\r\n    'rest_framework', # required only if using the provided REST endpoints\r\n     ...,\r\n)\r\n```\r\n    \r\n(Optional) Include viewset routes\r\n\r\n```python\r\nfrom django_global_places.urls import router as django_global_places_router\r\nyour_router.registry.extend(django_global_places_router.registry)\r\n```\r\n    \r\n\r\n### Explanation\r\n\r\n\r\nThis library handles the configuration and creation of `Countries`, `States`, and `Cities`.\r\n\r\nAfter installation, you need to specify three parameters in your `settings.py` file:\r\n\r\n-   `INCLUDE_LOCATION`: Enables the creation of the models.\r\n-   `LOCATION_SCOPE`: Determines the scope of models required ('countries', 'states', or 'cities').\r\n-   `INCLUDE_EXPANDED_COUNTRY`: Incorporates additional fields into the Country model.\r\n\r\nExample:\r\n\r\n    GLOBAL_PLACES = {\r\n\t    \"INCLUDE_LOCATION\": True,\r\n\t    \"LOCATION_SCOPE\": \"state\",\r\n\t    \"INCLUDE_EXPANDED_COUNTRY\": False,\r\n    }\r\n\r\n\r\nOnce these variables are configured, your next steps are to run `makemigrations` and `migrate`.\r\n\r\nTo **populate** the newly created models, you should execute a Django command. This command will create all the necessary objects and update them if they already exist.\r\n\r\n    python manage.py populate_global_places\r\n\r\n### Rest endpoints\r\n\r\nThree viewsets are included, one for each model: `Country`, `State`, and `City`. Each viewset features:\r\n\r\nA list view displaying a summary of the objects.\r\nA detail view presenting comprehensive information about each object.\r\n\r\n- CountryViewSet:\r\n\t- url: global-places/countries\r\n\t- search fields: `name` and `iso3`\r\n\t- ordering fields: `id`, `name` and `iso3`\r\n\r\n- StateViewSet:\r\n\t- url: global-places/states\r\n\t- search fields: `name` and `state_code`\r\n\t- ordering fields: `id`, `name` and `state_code`\r\n\t- filtering fields: `country`\r\n\r\n- CityViewSet:\r\n\t- url: global-places/cities\r\n\t- search fields: `name`\r\n\t- ordering fields: `id` and `name`\r\n\t- filtering fields: `state`, `state__country`\r\n\r\nFull examples [here](https://www.postman.com/restless-zodiac-765340/workspace/django-globalplaces/collection/18007906-46245b57-0675-4bfb-ae41-c71ee6f6f6f5?action=share&creator=18007906) in Postman collection.\r\n\r\n### Acknowledgements\r\n\r\nSpecial thanks to the [Countries States Cities Database](https://github.com/dr5hn/countries-states-cities-database) for providing the JSON files used for populating the data.\r\n\r\n## Contributing\r\n\r\n-   [Luca Citt\u00e1 Giordano](https://www.linkedin.com/in/lucacittagiordano/)\r\n    \r\n-   [Matias Girardi](https://www.linkedin.com/in/matiasgirardi)\r\n\r\nMaintained and developed by [Linkchar Software Development](https://linkchar.com/).\r\n\r\n\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Django Global Places is a simple Django app to provide a model for global places.",
    "version": "0.8.7",
    "project_urls": {
        "Homepage": "https://github.com/lucacitta/Django-GlobalPlaces"
    },
    "split_keywords": [
        "django",
        "global",
        "places"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4387fbe39aae1725aa08e568d3a0f5ca682c5dc834a200212e617f004b429c0d",
                "md5": "d2ca75359740f931c4b1c61e34fc87a4",
                "sha256": "6f40ee13e01f8e705ec54130feb9d1a7d71d9ca7dcdccf10124406849f05ab26"
            },
            "downloads": -1,
            "filename": "django_global_places-0.8.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d2ca75359740f931c4b1c61e34fc87a4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 16383,
            "upload_time": "2024-05-27T12:28:05",
            "upload_time_iso_8601": "2024-05-27T12:28:05.118352Z",
            "url": "https://files.pythonhosted.org/packages/43/87/fbe39aae1725aa08e568d3a0f5ca682c5dc834a200212e617f004b429c0d/django_global_places-0.8.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2f51c15890763e967cce9d777b745444b9f109fa32edc98ab908be6269110fa1",
                "md5": "dadb6ac20bd0534a3b4904d9f049d7d4",
                "sha256": "3b7d08011f6f4a26235a8aff7b069fe1948d287976fbd066c9e38f75b74f42cf"
            },
            "downloads": -1,
            "filename": "django_global_places-0.8.7.tar.gz",
            "has_sig": false,
            "md5_digest": "dadb6ac20bd0534a3b4904d9f049d7d4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 11949,
            "upload_time": "2024-05-27T12:28:08",
            "upload_time_iso_8601": "2024-05-27T12:28:08.257386Z",
            "url": "https://files.pythonhosted.org/packages/2f/51/c15890763e967cce9d777b745444b9f109fa32edc98ab908be6269110fa1/django_global_places-0.8.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-27 12:28:08",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "lucacitta",
    "github_project": "Django-GlobalPlaces",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "django-global-places"
}
        
Elapsed time: 0.29701s