Skip to main content

django-airports-xtd

Django app providing transport hub data (airports, train stations, ferry terminals) from OpenFlights.

Documentation | PyPI | GitHub

Requirements

  • Python 3.10+
  • Django 5.0+
  • GeoDjango with PostGIS or Spatialite
  • django-cities-xtd >= 0.7.0

Installation

pip install django-airports-xtd

Add to your INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    "django.contrib.gis",
    "cities",
    "airports",
    ...
]

Configure the cities model settings:

CITIES_COUNTRY_MODEL = "cities.Country"
CITIES_CITY_MODEL = "cities.City"

Run migrations:

python manage.py migrate

Usage

Import data from OpenFlights:

# Import airports only (default)
python manage.py airports

# Import airports and train stations
python manage.py airports --stations

# Import airports and ferry terminals
python manage.py airports --ports

# Import all types
python manage.py airports --all

For detailed usage examples and spatial queries, see the documentation.

Models

Three models are provided, all with GeoDjango PointField support:

Model Description
Airport Airports and airfields
TrainStation Train stations with IATA codes
Port Ferry terminals with IATA codes

Common fields (shared via abstract base):

Field Description
id Django auto-generated primary key
openflights_id Unique identifier from OpenFlights database
name Hub name
iata 3-character IATA code (e.g., "JFK")
icao 4-character ICAO code (e.g., "KJFK")
altitude Altitude in meters
location GeoDjango PointField (SRID 4326)
country ForeignKey to cities.Country
city ForeignKey to cities.City
timezone IANA timezone (e.g., "America/New_York")
source Data source ("OurAirports", "Legacy", "User")

Compatibility

Python Django 5.0 Django 5.1 Django 5.2 Django 6.0
3.10 Yes Yes Yes -
3.11 Yes Yes Yes -
3.12 Yes Yes Yes -
3.13 - Yes Yes Yes
3.14 - - Yes Yes

Development

See the development documentation for setup instructions.

Quick Start

# Clone the repository
git clone https://github.com/arthanson/django-airports-xtd.git
cd django-airports-xtd

# Run tests
just test-quick

# Run linting
just lint

Disclaimer

This project is not affiliated with, endorsed by, or associated with OpenFlights or its maintainers. It is an independent, third-party Django integration that consumes publicly available OpenFlights data.

License

MIT License

Credits

Metadata

Release files for django-airports-xtd 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-airports-xtd 0.3.0
File Size Uploaded
django_airports_xtd-0.3.0.tar.gz 10.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-airports-xtd 0.3.0
File Interpreter ABI Platform
django_airports_xtd-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 21.2 kB

Release files / django_airports_xtd-0.3.0.tar.gz

Download URL django_airports_xtd-0.3.0.tar.gz
Size 10.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6eb998322109943bc66a3473961b63d333be8c12aa7c363eac1c3a2be1910eec
BLAKE2b-256 checksum
How to use checksums
2ef540f43c120c8d590e16c7ce0e4669f3a56232b41e3ea4a51ea0befa029fc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 3, 2026.

Transparency log

Release files / django_airports_xtd-0.3.0-py3-none-any.whl

Download URL django_airports_xtd-0.3.0-py3-none-any.whl
Size 10.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
98cc5b923413033d57ffb1d6c097f232b03628e9c7ee969d70ded29c84503899
BLAKE2b-256 checksum
How to use checksums
da55af7b1524298e06dbed3a44e5597eae874374134ad4ed7375bb27b5ac0495
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page