""" Small module that import events into the database. """ import json from datetime import datetime from django.core.management.base import BaseCommand from django.db import models from profiles.models import Place, Event def import_file(filename): with open(filename, mode='r') as file: data = json.load(file) for event in data: import_event(event) def import_place(_place): place = Place( name=_place.get("name", ""), address=_place.get("address", ""), lat=float(_place.get("lat", 0)), lon=float(_place.get("lon", 0)) ) place.save() return place def import_event(_event): if isinstance(_event["place"], str): place = Place.objects.get(name=_event["place"]) else: place = import_place(_event["place"]) event = Event( name=_event.get("name", ""), date=datetime.strptime(_event.get("date", "01/01/1970 00:00 UTC"), "%d/%m/%Y %H:%M %Z"), place=place ) #print(event) event.save() class Command(BaseCommand): def handle(self, *args, **kwargs): import_file("data/events.json")