在CreateAPIView
我可以覆盖create
方法来添加我的逻辑:
class OpenstackAccountCreateAPIView(CreateAPIView):
"""
create openstack account
"""
serializer_class = OpenstackAccountCreateSerializer
def create(self, request, *args, **kwargs):
# put my logic here
......
但如果我有一个APIView,我在哪里可以写出我的逻辑?
class OpenstackAccountLoginAPIView(APIView):
serializer_class = OpenstackAccountLoginSerializer
# where can I put my login logic?
我在Serializers.py中的OpenstackAccountLoginSerializer:
class OpenstackAccountLoginSerializer(Serializer):
password = serializers.CharField()
答案 0 :(得分:3)
你可以覆盖你想要的动词的方法。可能要创建一个您想要POST的帐户。像这样:
class OpenstackAccountLoginAPIView(APIView):
serializer_class = OpenstackAccountLoginSerializer
def post(self, request, format=None):
# Logic goes here, defining resp with whatever you want to respond.
return Response(resp)
您可以使用POST动词调用它,与使用文档here中的create
CreateAPIView
时相同。
答案 1 :(得分:0)
class OpenstackAccountLoginAPIView(APIView):
serializer_class = OpenstackAccountLoginSerializer
def get(self, request):
"""
Return a list of all users.
"""
def post(self, request):
"""
Create users.
"""