"detail": "CSRF 失败:CSRF 令牌丢失或不正确" Django 休息框架

问题描述

我的错误:

{
    "detail": "CSRF Failed: CSRF token missing or incorrect."
}

我的模型:

class Booking(models.Model):
    booking_id = models.AutoField(primary_key=True)
    booking_owner = models.TextField(max_length=20)
    booking_city = models.TextField(max_length=20)
    booking_place = models.TextField(max_length=20)
    booking_arrival = models.DateField()
    booking_departure = models.DateField()
    booking_vehicle = models.TextField(max_length=20)
    booking_amount = models.TextField(max_length=20)
    booking_payment_date = models.DateField(default=now)
    booking_status = models.TextField(max_length=10,default=None,blank=True,null=True)
    booking_payment_status = models.TextField(max_length=10,null=True)
    booking_entrance_time = models.TimeField(default=None,null=True)
    booking_exit_time = models.DateTimeField(default=None,null=True)

    def __str__(self):
        return "%s - %s" % (self.booking_id,self.booking_city)

我的序列化程序:

class AddBookingSerializer(serializers.ModelSerializer):
    class Meta:
        model = Booking
        fields = '__all__'

我的观点:

class BookingAddAPI(APIView):

    @staticmethod
    def post(request):
        data = {}
        try:
            serializer = WitPark.serializers.AddBookingSerializer(data=request.data)
            if serializer.is_valid():
                serializer.save()
                data['status'] = status.HTTP_201_CREATED
                data['message'] = "Data saved successfully"
            else:
                data['status'] = status.HTTP_204_NO_CONTENT
                data['message'] = "Invalid data"
        except Exception as e:
            data['status'] = status.HTTP_404_NOT_FOUND
            data['message'] = "Failed to save the data"
            data['error'] = e

        return Response(data=data)

我还有其他 POST 方法。此 post 方法在本地主机上运行良好,但在实时服务器中无法正常工作 (pythonanywhere.com) 除此之外,所有其他方法在实时服务器上也可以正常运行

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)