用户成功注册帐户(创建用户名和密码)后,网页会返回空白注册表单。
我想在成功注册后重定向到“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/