【问题标题】:Django-registration activate account but template shows error in activationDjango-registration 激活帐户但模板显示激活错误
【发布时间】:2013-01-12 20:43:07
【问题描述】:

我是 Django 新手,我将 django-registration 包含在我的项目中。

效果很好,只是当用户点击激活链接时,他的帐户会被激活,但用户会被重定向到一个另有说明的模板。

这里是 urls.py 部分:

urlpatterns = patterns('',
    url(r'^activate/complete/$',
        direct_to_template,
        {'template': 'registration/activation_complete.html'},
        name='registration_activation_complete'),
    url(r'^activate/(?P<activation_key>\w+)/$',
        activate,
        {'backend': 'registration.backends.default.DefaultBackend'},
        name='registration_activate'),

这是视图部分:

def activate(request, backend,
         template_name='registration/activate.html',
         success_url=None, extra_context=None, **kwargs):

    backend = get_backend(backend)
    account = backend.activate(request, **kwargs)

    if account:
        if success_url is None:
            to, args, kwargs = backend.post_activation_redirect(request, account)
            return redirect(to, *args, **kwargs)
        else:
            return redirect(success_url)

    if extra_context is None:
        extra_context = {}
    context = RequestContext(request)
    for key, value in extra_context.items():
        context[key] = callable(value) and value() or value

    return render_to_response(template_name,
                              kwargs,
                              context_instance=context)

行:

backend.post_activation_redirect 

返回registration_activation_complete

这是模板:

{% extends "base.html" %}
{% load i18n %}

{% block content %}

{% if account %}

<p>{% trans "Account successfully activated" %}</p>

<p><a href="{% url auth_login %}">{% trans "Log in" %}</a></p>

{% else %}

<p>{% trans "Account activation failed" %}</p>

{% endif %}

{% endblock %}

我怀疑它创建了帐户,然后由于以下行被重定向到另一个网址:

return redirect(to, *args, **kwargs)

然后它调用通用视图 direct_to_template 但此时变量帐户不再存在,因为它在重定向后被销毁(这是我的猜测)。

我想将帐户变量发送到第二个视图,但没有成功。

感谢您对这个问题的帮助。

【问题讨论】:

  • 你的缩进全乱了,请修复它
  • 好的,抱歉,我修好了,希望现在可以了,如果不行,请告诉我

标签: python django django-templates django-views django-registration


【解决方案1】:

模板有一个条件,它检查account 变量,它没有设置。只需删除条件和错误消息,您就可以开始了。在 django-registration 0.8 中,从不为模板设置该变量。

这是一个示例Activation Complete Template

希望这会有所帮助!

【讨论】:

  • 好的,谢谢你的模板,其实我用的是旧模板。
猜你喜欢
  • 2011-06-22
  • 2020-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-01
  • 1970-01-01
  • 2016-08-31
相关资源
最近更新 更多