如何更改Django allauth中activate\u url的值?

2024-10-08 18:26:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用allauth和注册后,用户收到一封电子邮件,要求他们点击一个链接,以验证他们的电子邮件地址。我想更改这个链接的值。在

我想把它从

http://localhost:8001/account/confirm-email/hy72ozw8b1cexuw2dsx4wwrmgzbmnyxx4clswh67tcvgyovg/

^{pr2}$

我该怎么做?我看到activate_url值正在email_confirmation_text.txt中使用


Tags: 用户localhosthttpurl链接电子邮件email地址
2条回答

我没有使用django allauth,也没有将其合并到我的一个项目中,但是只要在他们的源代码中查找一下,就会发现以下情况:

send method只是执行一个基本的urlresolvers.reverse调用,这意味着它正在从account/urls.py构造定义为here的URL。在

因此,您有三种选择:

  1. 重写它们的urls.py,每次更新包时都必须重复此操作(恶心)。在
  2. 在他们的GitHub上提出一个问题,看看他们是否会将此添加为配置选项,而不是像他们所做的那样“硬编码”。在
  3. 尝试子类化他们的EmailConfirmation模型,用更适合你的项目的东西覆盖他们的send方法,看看你是否能让它使用你的而不是他们的(不知道这是否可行)。在

您实际上不必重写allauthurls.py为了实现这一点,您只需在之后指定您的url版本,包括allauth的url:

from django.conf.urls import patterns, include, url
from allauth.account.views import confirm_email

urlpatterns = patterns('',
    ...
    url(r'^accounts/', include('allauth.account.urls')),
    url(r'^index.html#/verifyEmail/(?P<key>\w+)/$', confirm_email,
        name="account_confirm_email"),
    # but I would recommend changing that url:
    url(r'^verify-email/(?P<key>\w+)/$', confirm_email,
        name="account_confirm_email"),
    ...
)

这是一篇关于url的好文章:Cool URIs don't change

相关问题 更多 >

    热门问题