def import_manual_vote(self, instance): fields = instance['fields'] vote = Vote( date=date_parser.parse(fields['date']), kind=fields['kind'], name=fields['name'], text=fields['message'], ) vote.save() vote.tracks.add(Track.objects.get(pk=fields['track'])) vote.save()
def import_vote(self, instance): fields = instance['fields'] this_vote_date = date_parser.parse(fields['date']) user_qs = TwitterUser.objects.filter(user_id=fields['user_id']) user_meta = { k: fields[k] for k in ['screen_name', 'user_image', 'name'] } if user_qs.exists(): user = user_qs.get() if user.updated < this_vote_date: for attr, value in user_meta.iteritems(): setattr(user, attr, value) user.updated = this_vote_date user.save() else: user = TwitterUser( user_id=fields['user_id'], updated=this_vote_date, **user_meta ) user.save() track_pks = fields['tracks'] if fields['track'] is not None: track_pks.append(fields['track']) tracks = [] for track_pk in track_pks: tracks.append(Track.objects.get(pk=track_pk)) if tracks: vote = Vote( date=this_vote_date, text=fields['text'], twitter_user=user, tweet_id=instance['pk'] ) vote.save() for track in tracks: vote.tracks.add(track) vote.save()