Django Rest Framework 将数据发送到没有序列化程序的视图

dot*_*dot 4 email django post django-rest-framework

Magic我的应用程序中有一个模型。我需要附加到此模型的用户在访问信息之前转到他们的电子邮件地址进行验证。这应该通过 RESTful API 发生。问题是,用户不一定要登录才能访问此功能(对于我无法控制的设计决策)。

我已经实现了用于生成必要信息和发送电子邮件(仅当此类电子邮件已注册)、访问电子邮件信息后进行身份验证等的逻辑。

我的问题:如何实现在正文(或 url)中接收用户电子邮件的视图?

方法1:创建一个url/magic_api/v1/tdbverification/(?P<email>[\w.@]+)/并提取电子邮件地址并发送电子邮件。

问题 1:我似乎无法提取电子邮件我需要在没有序列化程序的情况下返回一个 json 对象

方法 2:创建一个包含主体的视图:{"email": "<email@here.com>"}

问题 2:这需要一个没有模型的序列化程序(因为此视图仅用于发送电子邮件,它不会更改模型对象)。我尝试与一个serializers.Serializer班级一起工作,但无法弄清楚如何合并电子邮件发送逻辑。

对此的任何帮助将不胜感激。

a_k*_*k_v 9

为什么你总是需要一个序列化器!您可以在不使用序列化程序的情况下编写视图。例子

from rest_framework.views import APIView

class Test(APIView):
    def post(self, request):
        email = request.data['email']
        ...  your logic ...
        return Response(...)
Run Code Online (Sandbox Code Playgroud)