"(1452, Cannot add a foreign key constraint fails( CONSTRAINT `FK_STG_TRN_DATA_LOCATION` FOREIGN KEY (`LOCATION`) REFERENCES `location` (`LOCATION`))

@csrf_exempt 
def stg_trn(request):
    if request.method == 'POST':
        try: 
            json_object = json.loads(request.body)
            current_user = request.user
            D_keys=[]
            data_list=[]
            l_counter=0
            for row in json_object:
                for key in row:
                    if row[key]=="" or row[key]=="NULL":
                        D_keys.append(key)
                for key in D_keys:
                    row.pop(key)
                D_keys.clear()
                l_counter=l_counter+1
                d= str(datetime.now()).replace('-',"").replace(':',"").replace(' ',"").replace('.',"")
                unique_id=d+str(l_counter)+'STG'
                row["TRAN_SEQ_NO"]=unique_id
                row["PROCESS_IND"]='N'
                row["CREATE_DATETIME"]=str(datetime.now())
                row["CREATE_ID"]=str(current_user)
                row["REV_NO"]=1
                json_object=json_object[0]
                mycursor = connection.cursor()
                
                #Comparing and assign values to the Foreign key values based on input parameters.
                res1=mycursor.execute("SELECT LOCATION FROM LOCATION WHERE LOCATION="+'"'+(str(json_object["LOCATION"]))+'"')
                res1=mycursor.fetchall()[0][0]
                row["LOCATION"]=res1
                print(res1)

                res2=mycursor.execute("SELECT ITEM FROM ITEM_DTL WHERE ITEM="+'"'+(str(json_object["ITEM"]))+'"')
                res2=mycursor.fetchall()[0][0]
                row["ITEM"]=res2

                res3=mycursor.execute("SELECT CURRENCY FROM CURRENCY WHERE CURRENCY="+'"'+(str(json_object["CURRENCY"]))+'"')
                res3=mycursor.fetchall()[0][0]
                row["CURRENCY"]=res3
                cols=",".join(map(str, row.keys()))
                v_list=[]
                val=') VALUES('
                for v in row.values():
                    if v== None:
                        val=val+'NULL,'
                    else:
                        v_list.append(v)
                        val=val+'%s,'
                val=val[:-1]+')'
                query="insert into stg_trn_data(" +cols + val
                mycursor.execute(query,v_list)
                connection.commit()
                return JsonResponse({"status": 201, "message": "Data Inserted"})
Вернуться на верх