Django注册,强制电子邮件唯一后邮件激活失败(签名错误)

Django注册,强制电子邮件唯一后邮件激活失败(签名错误),django,django-registration,Django,Django Registration,我对django的注册有问题。在我强制发送唯一的电子邮件之前,一切正常 我有应用程序的基本框架。这很好: auth_patterns = [ url(r'^', include('registration.backends.hmac.urls')), ] urlpatterns = i18n_patterns( url(r'^admin/', admin.site.urls), url(r'^$', login_required(HomeView.as_view()),

我对django的注册有问题。在我强制发送唯一的电子邮件之前,一切正常

我有应用程序的基本框架。这很好:

auth_patterns = [
    url(r'^', include('registration.backends.hmac.urls')),
]

urlpatterns = i18n_patterns(
    url(r'^admin/', admin.site.urls),
    url(r'^$', login_required(HomeView.as_view()), name='index'),
    url(r'^accounts/', include(auth_patterns)),
)
但是当我加上

url(r'^register/$',
        RegistrationView.as_view(form_class=RegistrationFormUniqueEmail),
        name='registration_register'
    ),
在auth_模式中,我在邮件上获得激活链接

http://localhost:8000/en/accounts/activate/98a3585128c1b6899e4493768d4e62a52764fc5f/
但是点击之后我得到了

Account activation failed
从我的模板(activate.html)

我在浏览器控制台/或./manage.py runserver输出中没有错误,没有任何错误。当我尝试调试注册插件时,我注意到注册插件在此代码中以None返回用户(registration.backends.hmac.views.ActivationView):


这是一个糟糕的签名,但为什么呢?有人有这个问题吗?如何解决它?

我很感激它现在已经被移动了。我使用的是django注册==2.3

如果URL.py具有以下内容,则它应该可以工作:

从registration.backends.hmac.views导入注册视图 从registration.forms导入RegistrationFormUniqueEmail

类注册视图UniqueEmail(注册视图): form_class=注册FormUniqueMail

。。。 urlpatterns=i18n\u模式(


您是否更改了
SECRET\u KEY
设置?您最终是否能正常工作?我遇到了类似的问题,即将放弃UniqueMail的注册。效果非常好。
def validate_key(self, activation_key):
    """
    Verify that the activation key is valid and within the
    permitted activation time window, returning the username if
    valid or ``None`` if not.

    """
    try:
        username = signing.loads(
            activation_key,
            salt=REGISTRATION_SALT,
            max_age=settings.ACCOUNT_ACTIVATION_DAYS * 86400
        )
        return username
    # SignatureExpired is a subclass of BadSignature, so this will
    # catch either one.
    except signing.BadSignature:
        return None
url(r'^accounts/register/$', RegistrationViewUniqueEmail.as_view(), name='registration_register'),
url(r'^accounts/', include('registration.backends.hmac.urls')),