【发布时间】:2023-03-27 12:24:01
【问题描述】:
我的 react 应用中有一个函数可以将数据发送到我的 Django API。一旦收到数据,django 就会调用外部 python 函数来执行一些代码。
目前我有 javascript 在收到 ok 响应时给我一个警报。但是,在外部函数完成之前,Django 不会发送此响应;这是一个问题,因为根据用户的输入,外部函数可能需要长达一个小时才能运行。是否可以将其更改为在外部 python 代码开始成功运行时发出一次警报,并在函数完成时发出第二次警报?
我了解它们在将数据发送到 API 时可能会失败,API 无法访问数据可能是因为数据类型不匹配,最后是数据与外部函数不兼容。我正在寻找来自异步函数的 3 种不同响应 反应
export const SendData = (url, props) =>{ //this url is the url to the DataInput api view
const data1 = document.getElementById('data1')
const data2 = document.getElementById('data2')
async function postData() {
var res = ''
const options ={
method : 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=UTF-8'
},
body: JSON.stringify({
data_one: data1,
data_two: data2
})
}
const response = await fetch(url, options)
.then(response => {
if (response.ok) {
alert("Data Sent!")
}
else {
alert("An error has occurred.\nWere all fields filled out?")
}
});
}
postData()
};
models.py
class DataInput(models.Model):
data_one = models.IntegerField(
max_length=30,
default=5)
data_two = models.IntegerField(
max_length=30,
default=4)
class OtherData(models.Model):
other_data = models.IntegerField(
max_length=5,
default=10)
@receiver(post_save, sender=DataInput, dispatch_uid="extra function")
def extra_function(sender, instance, created, *args, **kwargs):
#dummy function to show reliance on data
for i in OtherData[0].other_data:
print(instance.data_two + instance.data_one)
serializer.py
from rest_framework import serializers
from .models import DataInput
from .models import OtherData
class DataSerializer(serilizers.ModelSerializer):
class Meta:
model = DataInput
fields = ('data_one', 'data_two')
class OtherDataSerializer(serializer.ModelSerializer):
class Meta:
model = OtherData
fields = ('other_data')
【问题讨论】:
标签: python reactjs django async-await