(django rest) JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError
В моем проекте django rest framework при размещении данных все работает, но когда я добавил валидаторы, то выдает ошибку. Вот serializers.py (с кодом валидатора)
def starts_with_r(value):
if value['0'].lower() != 'r':
raise serializers.ValidationError('Name Should start with R')
return value
class StudentSerializer(serializers.Serializer):
name=serializers.CharField(max_length=100, validators=[starts_with_r])
roll =serializers.IntegerField()
city=serializers.CharField(max_length=100)
views.py (эта часть для обработки пост-запроса
) if request.method == 'POST':
json_data=request.body
stream=io.BytesIO(json_data)
pythondata=JSONParser().parse(stream)
serializer=StudentSerializer(data=pythondata)
if serializer.is_valid():
serializer.save()
res={'msg':'Data Created'}
json_data=JSONRenderer().render(res)
return HttpResponse(json_data,content_type='application/json')
json_data=JSONRenderer().render(serializer.errors)
и myapp.py, в котором я пытаюсь разместить данные
import requests
import json
URL="http://localhost:8000/studentapi/"
def post_data():
data={
'name':'rayan',
'roll':170,
'city':'Cumilla'
}
json_data=json.dumps(data)
r= requests.post(url=URL, data=json_data)
data=r.json()
print(data)
когда я пытаюсь опубликовать данные без валидаторов, они работают, но когда с валидаторами, выдается эта ошибка
File "C:\Users\ITS\Desktop\django-rest\myapp.py", line 45, in <module>
post_data()
File "C:\Users\ITS\Desktop\django-rest\myapp.py", line 25, in post_data
data=r.json()
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)