Как перезаписать данные в django?
У меня есть два представления, в одном я пытался перезаписать данные. вот первый код:
**
tafhist = APIHistory(API_Hist_Id= pi,Status='API has been Submitted',unique_Id='UNID1006',url=url)
tafhist.save()
**
Сначала я создаю данные и сохраняю их. Теперь в том же месте я хочу обновить тот же столбец. вот второй код этого:
**
tafhist = APIHistory(Status='TAF Started')
tafhist.save()
**
В этой строке я пытался обновить, но не понял, как это сделать. кто-нибудь может объяснить?
вот моя модель:
class APIHistory(models.Model):
API_Hist_Id = models.ForeignKey(APIDetail, on_delete=models.CASCADE, related_name='TestCase_ID', blank=True, null=True)
Status = models.CharField(max_length=200,blank=True)
unique_Id = models.CharField(max_length=100,blank=True)
errorMsg = models.CharField(max_length=500,blank=True)
url = models.CharField(max_length=10000,blank=True)
created_at = models.DateTimeField(auto_now_add=True, blank=True, null=True)
updated_at = models.DateTimeField(auto_now=True, blank=True, null=True)
Вот два моих мнения:
@csrf_exempt
def ATFinfo(Request):
print("request",Request)
res = Request.body
print("atf response POST",res)
b = QueryDict(res)
h = json.dumps(b)
p = json.loads(h)
print("checking p", p)
uid = p["uniqueId"]
eventType = p["eventType"]
print("my dict",uid,eventType)
# tuid = list(APIHistory.objects.values('unique_Id').values())[0].get('unique_Id')
tuid = list(APIHistory.objects.values('unique_Id').filter(unique_Id=uid).values())[0].get('unique_Id')
# uniqid = bool(tuid == uid)
print(" checking uniqid",tuid)
if tuid :
if eventType == 'START':
tafhist = APIHistory(Status='TAF Started')
tafhist.save()
elif eventType == 'END':
tafhist = APIHistory(Status='TAF Completed')
tafhist.save()
else:
tafhist = APIHistory(Status='Failed')
tafhist.save()
print("if")
return HttpResponse('{"responseCode":"OK","description":"Request acquired without errors","errorCode":"","errorDescription":""}')
else:
print("else")
return HttpResponse('{"responseCode":"KO","description":"Request acquired with errors","errorCode":"ERROR","errorDescription":""}')
def ATFrun(request,API_ID):
if request.method == 'POST':
pi = APIDetail.objects.get(pk=API_ID)
atfParam= list(APIParameter.objects.values('id','parameterName','parameterValue').filter(api_taf_id=pi))
req = request.POST
req_list = list(dict(req).values())
ATFparams_count = len(req_list)
ATFparams = ""
# url = 'http://172.31.65.156:8082/TAF-Core/ServletController?'
url = list(Lookup.objects.values('Value').filter(Name='TAF_API_URL').values())[0].get('Value')
print("Checking url", url)
if ATFparams_count > 0:
for i in range(ATFparams_count-1):
ATFparams = ATFparams + req_list[i+1][0] +'=' + req_list[i+1][1] +'&'
# print("atf",ATFparams)
data = ATFparams[:-1]
url = url + data
# print("hi Chethan")
print('paramfinal-hello',url)
post_response = requests.post(url=url)
print("post response", json.loads(post_response.text))
tafhist = APIHistory(API_Hist_Id= pi,Status='API has been Submitted',unique_Id='UNID1006',url=url)
tafhist.save()
atf = APIDetail.objects.all()
return HttpResponseRedirect('/TAFDashboard')
else:
pi = APIDetail.objects.get(pk=API_ID)
atfParam= list(APIParameter.objects.values('id','parameterName','parameterValue').filter(api_taf_id=pi))
atf = APIDetail.objects.all()
return render(request, 'hello/ATF_Run.html',{'ATF': atf, 'Param': atfParam})