мой views.py:Реализация пользовательского класса Response в ФПИ
class OptiResponse(Response):
def __init__(self, token=None, code=None, headers=None):
if code==0:
if token:
data = {
"status":{
"code": 0,
"error_message": ""
},
"data":{
"token":token,
}
}
data = {
"status":{
"code": 0,
"error_message": ""
},
"data":{
}
}
data = {
"status":{
"code": 1,
"error_message": ""
},
"data":{
}
}
self.token=token
self.data = data
if headers:
for name, value in six.iteritems(headers):
self[name] = value
@property
def rendered_content(self):
return ret
@property
def status_text(self):
return responses.get(self.status_code, '')
def __getstate__(self):
return state
class LoginView(generics.CreateAPIView):
serializer_class = serializers.LoginSerializer
"""Authenticate and Login a user."""
def post(self, request, format=None):
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
email = serializer.data['email']
password = serializer.data['password']
remember = serializer.data['remember_me']
user = authenticate(email=email, password=password)
if user:
if user.is_active:
if remember:
request.session.set_expiry(120)
login(request, user)
token = Token.objects.get(user=user)
return OptiResponse(0, token.key)
Здесь выше снимок моих нынешних взглядов приложения. Я работаю над API DRF, и я хочу настроить класс Response для DRF. Я хочу, чтобы вызвать реакцию с двумя аргументами, как 'Reponse(code, token)'
, как указана выше, где выход остального API должен быть в формате согласно значению кода показан ниже:
{
"status":{
"code": 0, #either 0 in success or 1 in error.
"error_message": ""
},
"data":{
}
}
Можно ли сделать это подклассы 'Response'
класса в моем собственный класс. Возможно, я делаю это неправильно. Пожалуйста, предложите мне возможное решение.
Спасибо! заранее.