我用 django 构建了一个 API,并在使用 Sendinblue 创建一个用户时自动发送欢迎电子邮件。这一步我没有问题。(所以我们在 url /add_user/
)
我有第二个 url 向用户发送链接(uid + 令牌)(感谢他的电子邮件)。为此,我使用了一个外部包:djoser。所以我使用 djoser 的 url/auth/users/reset_password/
和/auth/users/reset_password_confirm/
我的梦想是在单个 url中组合/reset_password/
和
我的问题是其中的逻辑是由 djoser 编写的,所以我无法处理它。或者我不知道怎么做!/add_user/
/add_user/
/reset_password/
/reset_password_confirm/
这是我试图覆盖 djoser 视图的内容:
在 urls.py 中:
path('custom_djoser/', ChangeCredentialsView.as_view(), name='customdjoser'),
在views.py中:
class ChangeCredentialsView(UserViewSet):
def post(self, *args, **kwargs):
print("hello world")
return JsonResponse({"helloworld":"success"})
收到以下错误:
在 ViewSet 上调用 .as_view() 时必须提供 actions 参数。例如 .as_view({'get': 'list'})
所以我删除了 urls.py 中的 .as_view() 并得到了这个错误:
禁止(CSRF 令牌丢失或不正确。):/custom_djoser/
对我来说,这是不可理解的,因为我不使用 csrf 令牌,但我尝试在我的类中的调度函数中使用 @csrf_exempt。我试图class ChangeCredentialsView(UserViewSet, APIView):
用授权令牌定义为我的另一个类。无事可做,每次使用 csrf 令牌出错。我可能会探索一种非常痛苦和愚蠢的方法来做我想做的事情,请告诉我是否有更简单的方法来做到这一点!