Django1.6:登录后重定向到最后一页

2024-05-15 17:43:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望我的用户在成功登录后被重定向到最后一页。但是用户被重定向到索引页

这就是我的头像

  <li><a href="/login">Login</a></li>

这是登录表

^{pr2}$

这是登录名

url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'meddy1/login.html'}, name="login"),

这是一个模板

def dentists(request):
    d = getVariables(request)
    doctors = Doctor.objects.all().order_by('-likes')
    paginator = Paginator(doctors, 20) #Show 20 doctors per page
    page =  page = request.GET.get('page')
    try:
        doctors = paginator.page(page)
    except PageNotAnInteger:
        doctors = paginator.page(1)
    except EmptyPage:
        doctors = paginator.page(paginator.num_pages)
    d['doctors'] = doctors
    d['paginator'] = paginator
    return render_to_response('meddy1/dentists.html',d)

Tags: 用户namerequesthtmlpageloginli重定向
1条回答
网友
1楼 · 发布于 2024-05-15 17:43:15

您不需要为登录创建一个视图;只需在网址.py在

from django.conf.urls import patterns

urlpatterns = patterns('',
    (r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'accounts/login.html'}),

你的模板可以是:

^{pr2}$

在您的视图中,如果它们是函数视图:

from django.http import HttpResponse, HttpResponseRedirect

def my_view(request):
    if request.user.is_authenticated():
        # do view stuff returning some HttpResponse
    else:
        return HttpResponseRedirect('/login/?next=%s' % request.path)

或者更简单,使用@login\u required:

from django.contrib.auth.decorators import login_required

@login_required
def my_view(request):
    # do view stuff returning some HttpResponse

如果您的视图是CBV,请在网址.py像这样:

from django.contrib.auth.decorators import login_required

url(r'^app/url/$', login_required(MyView.as_view()), name='my-view'),

它将重定向到用户登录之前的页面。在

相关问题 更多 >