0

AoA,我正在尝试重定向到某些视图,但没有这样做。

这是代码

views.py

def logout(request):
        c = {'username': 'Create Account', 'status': ''}
    c.update(csrf(request))
    response = render_to_response("home.html",c)
    response.delete_cookie('id')
    request.session['id'] = 'None'
    return redirect('/home/')

def home(request):
       #some code here 
       return render_to_response('blah blah')

网址.py

url(r'^home/$', 'contacts.views.home_Page'), url(r'^logout/$', 'contacts.views.logout'),

上面的代码将我重定向到 - 假设当前 URL(127.0.0.1/account) 将我重定向到 (127.0.0.1/account/home) 但我想重定向到 127.0.0.1/home 如何重定向到特定视图?

4

2 回答 2

2

redirect(to[, permanent=False], *args, **kwargs)为传递的参数返回一个 HttpResponseRedirect 到适当的 URL。您需要在视图函数中返回 HttpResponseRedirect 对象。

顺便说一句,您应该尽量避免在代码中硬编码 url,而应该使用视图名称。

例如:

网址.py:

url(r'^home/$', home, name='home_view')
...

视图.py:

def logout(request):
    ...
    redirect('home_view')
于 2013-11-04T06:17:06.080 回答
1

logoutdjango 提供了一个你应该使用的内置函数:

from django.shortcuts import redirect
from django.contrib.auth import logout

def log_out(request):
   logout(request)
   return redirect('home')

现在'home'可以做很多事情;但确保其指向正确位置的最简单方法是命名您的网址。所以在你的urls.py

url(r'home/$', home, name='home')
于 2013-11-04T06:37:01.057 回答