我是Django
的新手。给定一个简单的用户登录方案。我有两个模板:index.html
和register.html
。
在register.html
中,它只是一个简单的用户注册网页,并将用户数据发布到网址:
<form class="form-horizontal" action="/register/" method="post">
......
</form>
在index.html
中,它会显示用户信息:
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
<p>Welcome, new user. Please log in.</p>
{% endif %}
以下是urls.py
:
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'register/form/', views.register_form,name='register_form'),
url(r'register/', views.register, name='register'),
)+static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
以下是views.py
:
def index(request):
return render(request, 'index.html')
def register_form(request):
return render(request, 'register.html')
def register(request):
if request.method == 'POST':
user = User.objects.create_user(username=request.POST['username'], password=request.POST['password'])
user.save()
user = authenticate(username=request.POST['username'], password=request.POST['password'])
auth.login(request, user)
return render_to_response('index.html', context_instance=RequestContext(request))
这是我的问题:
首先,转到此网址register/form/
填写表单并提交数据,然后它会转到网址register/
处理数据,然后转到index.html
。但浏览器中的网址仍为register/
。
注册后,我希望网址为my_domain_name/
而不是my_domain_name/register/
,因为如果它仍然在my_domain_name/register/
,如果我刷新,则会显示是否再次提交数据。
请帮忙。
答案 0 :(得分:1)
您可以尝试https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#redirect。将view.py修改为:
from django.shortcuts import redirect
def register(request):
...
return redirect('/')