def process_teachers(self, row): if not self.teacher and not self.student: return teacher_name = regex.sub(r'\d+', '', row.get('teacher').strip()) grade = Grade.objects.get(grade=int(row.get('grade', '0').strip())) room = row.get('room').strip() room_grade = "{0}-{1}".format(room, grade) if room_grade in self.teachers: return self.teachers[room_grade] try: teacher = Teacher.objects.get(grade=grade, room_number=room, list_type__in=[1,2]) except ObjectDoesNotExist as err: print '==== teacher.room.exist.err [{0}][{1}]'.format(teacher_name, err) try: teacher = Teacher.objects.get(grade=grade, last_name=teacher_name) except: print '==== teacher.name.exist.err [{0}][{1}]'.format(teacher_name, err) teacher = Teacher(grade=grade) finally: teacher.list_type = 2 if teacher_name.find('/') else 1 teacher.room_number = room teacher.last_name = teacher_name teacher.email_address = '*****@*****.**' teacher.website = 'http://tusd.haikulearning.com/' print '==== teacher [{0}]'.format(teacher) if self.save: try: teacher.save() except Exception as err: print '==== teacher.save.err [{0}]'.format(err) print '==== teacher.save [{0}]'.format(teacher) self.teachers[room_grade] = teacher return teacher