def _submit(self): print 'submitting: %s' % self.message.subject stu_num, seq, ext = self.attachment_name_split student = Student.objects.get(student_num=stu_num) assignment = Assignment.objects.get(sequence=seq) self.student_name = student.name self.assignment_title = assignment.title try: submission = Submission.objects.get( student=student, assignment=assignment) submission.score = self._score(assignment) except Exception as e: submission = Submission() submission.student = student submission.assignment = assignment submission.score = self._score(assignment) submission.updated_at = self.message.parsed_date or datetime.now() submission.save() email = self._save_email(submission) try: self._save_files(email, ext) submission.save() except zipfile.BadZipfile as e: self.badattachments = True raise e except rarfile.BadRarFile as e: self.badattachments = True raise e self.submitted = True return True