【问题标题】:How to redirect with request context to another url in Django如何使用请求上下文重定向到 Django 中的另一个 url
【发布时间】:2014-05-08 02:41:58
【问题描述】:

我是Django 的新手。给定一个简单的用户登录场景。我有两个模板:index.htmlregister.html

register.html中,它只是一个简单的用户注册网页并将用户数据发布到一个url:

<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))

这是我的问题:

首先到这个urlregister/form/填表提交数据,然后到urlregister/处理数据再到index.html。但是浏览器中的url还是register/

注册后,我希望url是my_domain_name/而不是my_domain_name/register/,因为如果它还在my_domain_name/register/,如果我刷新它会显示是否再次提交数据。

请帮忙。

【问题讨论】:

    标签: python django django-forms django-templates


    【解决方案1】:

    你可以试试https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#redirect。修改view.py为:

    from django.shortcuts import redirect
    
    def register(request):
        ...
        return redirect('/')
    

    【讨论】:

      猜你喜欢
      • 2020-02-05
      • 1970-01-01
      • 2015-05-10
      • 2017-12-27
      • 2015-09-25
      • 2014-12-05
      • 2022-08-07
      • 1970-01-01
      • 2016-06-18
      相关资源
      最近更新 更多