def post_metadata(request, ef_id): ef = get_object_or_404(ExamFile, id=ef_id) try: e = Exam.objects.get(file=ef) except Exam.DoesNotExist: e = Exam() e.file = ef e.professor, c = Professor.objects.get_or_create(name=request.POST['professor']) e.subject, c = Subject.objects.get_or_create(name=request.POST['subject']) e.degree, c = Degree.objects.get_or_create(name=request.POST['degree']) try: e.year = int(request.POST['year']) except ValueError: r = HttpResponse("invalid year") r.status_code = 405 return r e.hws = True if request.POST['hws'] == "true" else False e.solution = True if request.POST['solution'] == "true" else False e.note = request.POST['note'] e.save() return HttpResponse("OK")