--- id: django-cities-light version: "3.11" license: MIT license_treatment: permissive maintenance: active --- # django-cities-light — Simple alternative to django-cities License: permissive · Maintenance: active · Downloads: 75.2K/mo ## What it is and what it does django-cities-light is a Django app that syncs geographic reference data—countries, regions, subregions, and cities—from GeoNames into your database. It provides models and a management command to download and import this data, with options to filter by country, language, and city type. The package is designed for simple use cases like address books or location dropdowns, not for spatial queries or complex geographic analysis. Once installed and configured, you run a single management command to populate your database. The app includes built-in Django admin support, GraphQL integration, and Rest-Framework compatibility. It handles data updates and can export/import via fixtures to avoid repeated downloads. Configuration is done through Django settings, allowing you to exclude unwanted data and manage index size issues on large imports. Use it for: - Build a user registration form with country and city dropdowns populated from GeoNames data - Create a simple address book or contact management system with geographic location fields - Populate a shipping or billing address selector with validated countries and cities - Set up a location-based filtering system for a directory or marketplace without spatial queries - Migrate geographic reference data between development, staging, and production servers using fixtures ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Provides Django models and management commands to import and manage geographic data (countries, regions, cities) from GeoNames into your database. Yes. The package is actively maintained, has no known vulnerabilities, installs with low friction, and solves a straightforward problem—importing and managing geographic reference data in Django. It's appropriate for applications that need simple location lookups without spatial query requirements. The MIT license carries no restrictions. Install it if you need to populate countries, regions, and cities in your Django app. ## Install pip install django-cities-light uv add django-cities-light poetry add django-cities-light ## Installing django-cities-light Before you install: Low friction install with five straightforward runtime dependencies. Actively maintained with recent commits and production-stable status. License in practice: MIT license permits commercial and private use with minimal restrictions. Quickstart: pip install django-cities-light # In settings.py, add to INSTALLED_APPS: INSTALLED_APPS = [ ... 'cities_light', ] # Then run: ./manage.py migrate ./manage.py cities_light Requires Django >= 4.2 and Python >= 3.10; needs MySQL, PostgreSQL, or SQLite database. Verify before relying: - Performance characteristics of the import command on large datasets or with all city types enabled - Whether GraphQL, Rest-Framework, and Ajax Select integrations work out-of-the-box or require additional configuration ## Package facts - License: MIT (permissive) - Python support: unspecified - Install friction: low - Maintenance: active - Downloads: 75.2K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags django geographic data import, cities countries regions database, geonames django models, location data management django, city lookup django app, django-app, geonames-data, location-reference [View on SkillFed](https://skillfed.io/packages/django-cities-light) · [View on PyPI](https://pypi.org/project/django-cities-light/)