A Django ORM interface for PyOWM domain entities
- Django 1.10+
- PyOWM 2.5+
Python 2.7 is supported.
** Please notice that the API can be unstable as this project is still in beta testing **
Install the library with pip:
$ pip install django_pyowmThen add django_pyowm to the INSTALLED_APPS list into your Django project's settings.py file:
INSTALLED_APPS = [
    ...
    'django_pyowm'  # <---
]Finally generate tables by applying migrations:
$ python manage.py makemigrations django_pyowm
$ python manage.py migrateModels behave as all other Django models but they have a few useful functions:
- <Model_class>.from_entity(entity)- creates a PyOWM model instance from the corresponding PyOWM domain object instance
- <Model_instance>.to_entity(entity)- turns the model instance to the corresponding PyOWM domain object instance
- <Model_class>.save_all()- persists the model instance along with all related objects
from pyowm import OWM
from django_pyowm import models
# Get data an Observation from the API 
owm = OWM(API_key='my_key')
obs = owm.weather_at_place('London,UK')
# Create a model instance from API response
m = models.Observation.from_entity(obs)
# Save related objects and then the model itself
m.location.save()
m.weather.save()
m.save()
# .. or save everything in one shot
m.save_all()
# From model instance to entity
original_obs = m.to_entity()All details about testing are here