【发布时间】:2021-07-17 06:25:39
【问题描述】:
我有一个应用程序,前端使用 React Js,后端使用 Django。在向服务器发送一些信息后,我想在前端进行重定向,这可能吗?如果有怎么办? 我尝试了重定向,但没有成功
前端(reactJs)
async function PaymentHandler(e) {
e.preventDefault();
const data = { command_id: order._id, price: order.TotalPrice };
try {
const res = await axios.post("/api/orders/Details/", data);
} catch (error) {
console.log("THERES AN ERROR : ", error);
}
}
return loading ? (
<Loader />
) : error ? (
<Message variant="danger">{error}</Message>
) : (
<div>
<Button
variant="outline-primary"
className="mt-3"
onClick={PaymentHandler}
>
PAY NOW
</Button>
</div>
)
模型.py
class Stuff(models.Model):
paymentDetails = models.JSONField()
模型序列化器
class PaymentSerializer(serializers.ModelSerializer):
paymentDetails = serializers.JSONField()
class Meta:
model = Stuff
fields = '__all__'
views.py
from rest_framework.decorators import api_view
from django.shortcuts import redirect
from base.models import Stuff
from base.serializers import PaymentSerializer
import requests
import json
@api_view(['POST'])
def getPaymentDetails(request):
data = request.data
payment = Stuff.objects.create(
paymentDetails = data
)
serializer = PaymentSerializer(payment, many=False)
last = Stuff.objects.last()
details = (last.paymentDetails)
print('cmd id value :', details['command_id'])
print('price id value :', details['price'])
headers = {"Content-Type": "application/json","Authorization": "Bearer eyJ0exxxxxxxxxxxx"}
url = "https://apps.somewebsite.com/"
payload = {"payment_data":{
"command_id":details['command_id'],
"price":details['price']},
"data":{"return_url":"some return url",
"cancel_url":"some cancel url",
"shop_code":1}}
r = requests.post(url, headers=headers, json=payload)
print('request result : ', r.text)
result = r.text
result=json.loads(result)
if result['status'] == 1:
print ('payment token = ', result['payment_token'])
return redirect('https://welcome.somewebsite.com/payment/'+result['payment_token'])
【问题讨论】:
-
Ummm 是的,Django 可以做到这一点,但是您需要将 url 添加到您的 urls.py 文件中并为其命名。然后你可以通过 url 文件重定向它。
标签: reactjs django django-rest-framework