add create problem api
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import functools
|
||||
import json
|
||||
import logging
|
||||
from collections import OrderedDict
|
||||
|
||||
from django.http import HttpResponse, QueryDict
|
||||
from django.utils.decorators import method_decorator
|
||||
@@ -80,12 +81,21 @@ class APIView(View):
|
||||
def error(self, msg, err="error"):
|
||||
return self.response({"error": err, "data": msg})
|
||||
|
||||
def _serializer_error_to_str(self, errors):
|
||||
for k, v in errors.items():
|
||||
if isinstance(v, list):
|
||||
return k, v[0]
|
||||
elif isinstance(v, OrderedDict):
|
||||
for _k, _v in v.items():
|
||||
return self._serializer_error_to_str({_k: _v})
|
||||
|
||||
def invalid_serializer(self, serializer):
|
||||
for k, v in serializer.errors.items():
|
||||
if k != "non_field_errors":
|
||||
return self.error(err="invalid-" + k, msg=k + ": " + v[0])
|
||||
else:
|
||||
return self.error(err="invalid-field", msg=k[0])
|
||||
print(serializer.errors)
|
||||
k, v = self._serializer_error_to_str(serializer.errors)
|
||||
if k != "non_field_errors":
|
||||
return self.error(err="invalid-" + k, msg=k + ": " + v)
|
||||
else:
|
||||
return self.error(err="invalid-field", msg=v)
|
||||
|
||||
def server_error(self):
|
||||
return self.error(err="server-error", msg="server error")
|
||||
|
||||
Reference in New Issue
Block a user