def insert_test_result(request): if request.method == 'POST': logger.debug("insert load test request with body:" + request.body) data = request.POST if request.POST else convert_request_body_to_form_validation(request.body) test_date = get_current_day_start_date() if data['test_date'] is None else get_current_day_start_date(data['test_date']) try: exist_test_result = get_object_or_404(LoadTestResult, test_date=test_date, test_type=data['test_type'], test_version=data['test_version']) logger.info("Test result for %s[%s][%s] is existed, just update it", data['test_type'], data['test_version'], test_date) exist_test_result.test_result_bitrate = data['test_result_bitrate'] exist_test_result.test_result_error = data['test_result_error'] exist_test_result.test_result_index = data['test_result_index'] exist_test_result.save() return HttpResponse("Test result has been updated.") except: # 这里没有验证。如果需要验证,可以采用form验证的方式 result = LoadTestResult() result.test_type = data['test_type'] result.test_version = data['test_version'] result.test_date = test_date result.test_result_index = data['test_result_index'] result.test_result_bitrate = data['test_result_bitrate'] result.test_result_error = data['test_result_error'] result.save() return HttpResponse("Test result has been saved.") else: return HttpResponse("Must be post with XML body", status=400)
def save(self, commit=True): test_result = super(VexLoadTestInsertionForm, self).save(commit=False) if commit: try: # self.instance可以获得clean后的数据。也可以通过self.clean_data获取数据 current_date = ( get_current_day_start_date() if self.instance.test_date is None else get_current_day_start_date(self.instance.test_date) ) exist_test_result = get_object_or_404( LoadTestResult, test_date=current_date, test_type=test_result.test_type, test_version=test_result.test_version, ) logger.info( "Test result for %s[%s][%s] is existed, just update it", test_result.test_type, test_result.test_version, current_date, ) exist_test_result.test_result_index = self.instance.test_result_index exist_test_result.test_result_bitrate = self.instance.test_result_bitrate exist_test_result.test_result_error = self.instance.test_result_error exist_test_result.save() # self.instance. except Http404: logger.debug( "Test result for %s[%s][%s] is not existed, save it", test_result.test_type, test_result.test_version, current_date, ) test_result.save() except Exception, e: logger.error(e)