如何通过单个链接发送重置密码令牌



我在ListViewCBV 中有一个用户列表,并希望添加一个"重置密码"链接,该链接将一键向该用户发送一封带有重置密码令牌的电子邮件(因为auth_views当前设置为在您通过表单提交请求后(。

例如:

<td>{{ user.email }}</td>
<td><a href="{% url 'reset_link' user.pk %}">Reset password</a></td>

我正在使用 CBVauth_views所以知道我可以通过重定向到表单并使用 Django 的内置auth_views.PasswordResetView来手动重置此用户的密码。但是,由于我已经有了user.pk,我只需要一个可以立即发送相关电子邮件的链接。

如果我已经知道pk,有没有办法通过单个链接使用user.pk发送电子邮件?

快速技巧可以是:

urls.py

path('<int:user_pk>/my_password_reset/', views.MyPasswordResetView.as_view(), name='my_password_reset'),

views.py

class MyPasswordResetView(PasswordResetView):
def get_form_kwargs(self):
user = get_object_or_404(User, pk=self.kwargs.get('user_pk'))
return {'data': {'email': user.email}}
def get(self, request, *args, **kwargs):
return self.post(request, *args, **kwargs)

最新更新