我已经写了一些简单的API端点(没有Django REST)。我在弄清楚如何验证输入数据时遇到问题。
class CarTypeForm(forms.Form):
car_type= forms.IntegerField(
validators=[MinValueValidator(0), MaxValueValidator(6)], required=False
)
def car_data_as_json(request):
"""
API Endpoint
"""
# Receive and validate variables from get request
car_type= request.GET.get("car_type", 0)
car_type_form = CarTypeForm()
car_type_form.car_type = int(car_type)
if car_type_form.is_valid():
do something
return JsonResponse(something)
else:
return JsonResponse({'err': 'invalid car_type'}, status=400)
我不明白为什么if car_type_form.is_valid():
不是True,尽管该值例如为5。
由javascript调用端点到URL:/api/car_data/?car_type=<number>
我正在使用Django 2.1
答案 0 :(得分:1)
在调用is_valid
之前,您需要使用数据初始化表单:
car_type_form = CarTypeForm({'car_type': car_type})