def process_item(self, item, spider): if not Event.objects.filter(title=item['title']).exists(): event = Event() event.title = item['title'] else: event = Event.objects.get(title=item['title']) event.url = item['url'] event.image = item['image'] event.body = item['body'] event.date = item['date'].replace('/', '-') event.time = item['time'] event.price = item['price'] if Venue.objects.filter(name=item['venue']).exists(): venue = Venue.objects.get(name=item['venue']) else: venue = Venue() venue.name = item['venue'] venue.save() venue.address = item['address'] event.venue = venue event.save() artists = item['artists'] for artist_name in artists: if Artist.objects.filter(name=artist_name).exists(): artist = Artist.objects.get(name=artist_name) else: artist = Artist() artist.name = artist_name artist.save() event.artists.add(artist) event.save()