验证 django rest api 使用传统形式获取请求 class

Validating django rest api get request using traditional forms class

我正在尝试使用 Django 表单验证 DRF 获取请求,如下所示,

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形式如下,

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.cleaned_data 并出现以下错误,

    print(frm.cleaned_data)
AttributeError: 'ThisForm' object has no attribute 'cleaned_data'

谁能给我指出正确的方向。第一次使用DRF

改变

frm.is_valid

frm.is_valid() 

is_valid() 被调用时,表单仅获得 cleaned_data 属性,而您尚未在这个新的第二个实例上调用它。

但在您的情况下,您没有调用 is_valid() 方法