django - 注册用户后重定向到页面

标签 django django-registration

用户成功注册帐户(创建用户名和密码)后,网页会返回空白注册表单。

我想在成功注册后重定向到“landingpage”网址。

这是 html 表单:

<form method="post" action="{% url 'register' %}">
{% csrf_token %}
  <table>{{ form.as_table }}</table>
    <input type="submit" value="register" />
    <input type="hidden" name="next" value="{{ next }}" />
</form>

和 urls.py:

from django.views.generic.edit import CreateView
from django.contrib.auth.forms import UserCreationForm

urlpatterns = [
url('^accounts/register/', CreateView.as_view(
        template_name='registration/register.html',
        form_class=UserCreationForm,
        success_url='landingpage'
), name='register'),
url('^accounts/', include('django.contrib.auth.urls')),
url(r'^$', views.landingpage, name='landingpage'), ]

success_url='landingpage' 是否应该重定向到着陆页网址?

注册成功后如何重定向到登陆页面网址?

最佳答案

您正在寻找 reverse_lazy 函数,它包含在 django.core.urlresolvers 中,并且必须使用 from django.core.urlresolvers import 导入反向惰性

代码应类似于:

from django.core.urlresolvers import reverse_lazy
# more code goes here
    url('^accounts/register/', CreateView.as_view(
        template_name='registration/register.html',
        form_class=UserCreationForm,
        success_url=reverse_lazy('landingpage')  # note the usage of reverse_lazy here 
    ), name='register'),
# also here

该函数将遍历您的网址并在成功注册后进行正确的重定向。

查看 django 文档以获取更多选项:https://docs.djangoproject.com/en/1.11/ref/urlresolvers/#reverse-lazy

关于django - 注册用户后重定向到页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43696088/

相关文章:

jquery - 在 Django 中 AJAX 发布后重定向

python - "TemplateSyntaxError: ' 在 DJango 中人性化 ' is not a valid tag library:"

python - Django,注册扩展用户模型

django - 如何让 grappelli 自动完成小部件代替 ModelMultipleChoiceField(在一对多方向上)工作?

django - 测试 django 自定义管理命令

python - 我将 python 社交身份验证与 django 结合使用。我无法断开与 Steam 的连接

django 1.4 多对多批量添加

python - 使用带有 django-registration 字段的 django-bootstrap-toolkit 删除标签

django - 自动登录并重新发送电子邮件