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