def update_student_details(student_details): from academics.models import Student for batch_name in student_details: batch = get_batch(batch_name) for record in student_details[batch_name]: try: student = Student.objects.get(roll_no=record['RollNo']) if student.batch != batch: raise Exception("Student '%s' doesn't belong to batch '%s'" % (record['RollNo'],batch_name)) except Student.DoesNotExist: student = Student() student.roll_no = record['RollNo'] student.batch = batch if 'RegNo' in record: student.reg_no = str(int(record['RegNo'])) if 'Admission' in record: student.admission = record['Admission'] if 'Staying' in record: student.staying = record['Staying'] if 'Gender' in record: student.gender = record['Gender'] if 'StudentName' in record: student.name = record['StudentName'] student.save()