我的错误:
{
"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, default=None, blank=True, null=True)
booking_entrance_time = models.TimeField(default=None, blank=True, null=True)
booking_exit_time = models.DateTimeField(default=None, blank=True, 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) 除此之外,所有其他方法在实时服务器上也可以正常运行
答案 0 :(得分:0)
在进行此 POST API 调用时,您需要将 x0 = -(left_line[1] - right_line[1]) / (left_line[0] - right_line[0])
y0 = x0 * left_line[0] + left_line[1]
作为请求标头传递。
可以在此处找到更多详细信息:https://docs.djangoproject.com/en/3.2/ref/csrf/