我有一个视图,其中包含POST和GET请求。对于POST请求,数据来自其他URL。我不使用此视图来发布数据。但是,我对同一视图有一个GET请求,该视图从模型中检索数据并显示它。现在,当我打开(获取请求)此视图时,它将正确显示数据。但除此之外,它还显示POST请求的文本区域。我想在自己的视图中隐藏POST请求。
代码:
@api_view(['POST','GET',])
def TestView(request):
if request.method == 'POST':
data = json.loads(request.body.decode('utf-8'))
customers_instance = Customers.objects.create(firstname=data[0]["value"],
lastname=data[1]["value"],
dob=data[2]["value"],
emailaddress=data[3]["value"],
address1=data[4]["value"],
address2=data[5]["value"],
city=data[6]["value"],
state=data[7]["value"],
postalcode=data[8]["value"])
return HttpResponse('Data has been received by API')
if request.method == 'GET':
qs= Customers.objects.values('emailaddress','customer_id')
serializer_class = CustomersKeySerializer
return Response(serializer_class(many=True).to_representation(qs))
答案 0 :(得分:0)
周杰伦
我相信您希望将用户重定向到有关数据提交的谢谢页面。
您将必须在前端进行此重定向。
如果您使用ajax进行api调用,则可以在前端脚本中执行类似的操作。
$.ajax({
url: 'insert link to call here',
success: function (response) {
window.location == insert_redirect_url_here;
}
})
答案 1 :(得分:0)
周杰伦
我认为您应该使用两种不同的视图,因为您要处理两种不同的URL:一种用于GET,一种用于POST请求。
@api_view(['GET',])
def TestGetView(request):
if request.method == 'GET':
qs= Customers.objects.values('emailaddress','customer_id')
serializer_class = CustomersKeySerializer
return Response(serializer_class(many=True).to_representation(qs))
@api_view(['POST',])
def TestPostView(request):
if request.method == 'POST':
data = json.loads(request.body.decode('utf-8'))
customers_instance = Customers.objects.create(firstname=data[0]["value"],
lastname=data[1]["value"],
dob=data[2]["value"],
emailaddress=data[3]["value"],
address1=data[4]["value"],
address2=data[5]["value"],
city=data[6]["value"],
state=data[7]["value"],
postalcode=data[8]["value"])
return HttpResponse('Data has been received by API')