Проверка валидности запроса django rest api get с использованием традиционного класса форм
Я пытаюсь подтвердить запрос DRF get с помощью формы django следующим образом,
Вид django rest api
@csrf_exempt
@api_view(['GET', 'POST'])
def pkg_list(request):
if request.method == 'GET':
frm=ThisForm(request.GET)
if frm.is_valid:
print("form ok")
print(frm.cleaned_data)
else:
print("invalid")
mydata=[{"email": request.GET['reseller']}]
results=ResellerListPackages(mydata,many=True).data
return Response(results)
Класс представления формы выглядит следующим образом,
class ThisForm(forms.Form):
reseller=forms.EmailField(max_length=255)
def clean(self):
self.cleaned_data = super().clean()
print(self.cleaned_data)
return self.cleaned_data
Валидация формы работает нормально, но frm.clean_data не найдена со следующей ошибкой,
print(frm.cleaned_data)
AttributeError: 'ThisForm' object has no attribute 'cleaned_data'
Может ли кто-нибудь указать мне правильное направление. Я впервые использую DRF
Change
frm.is_valid
to
frm.is_valid()
Формы получают атрибут cleaned_data
только тогда, когда был вызван is_valid()
, и вы не вызвали его на этом новом, втором экземпляре.
но в вашем случае вы не вызываете is_valid()
метод .