python - 关于django的登陆成功后的view,使用login_required装饰后无法正常显示?
天蓬老师
天蓬老师 2017-04-18 10:31:34
0
2
852

最近在学django,不过遇到一个奇怪的问题:
登陆成功后,无法正确显示登陆后的view

这个是我的login view:

def login(request):
    """
    View of for users' logging
    """
    if request.method == 'POST':
        userform = UserForm(request.POST)
        if userform.is_valid():
            username = userform.cleaned_data['username']
            password = userform.cleaned_data['password']
            confirm = UserProfile.objects.filter(username__exact=username, password__exact=password)
            positive = HttpResponseRedirect(reverse('accounts:index'))
            negative = HttpResponseRedirect(reverse('accounts'))
            return positive if confirm  else negative
    else:
        userform = UserForm()

    dict_pass = {'userform': userform}
    return render(request, 'accounts/login.html', dict_pass)

认证通过后应该登陆的view:

@login_required
def index(request):
    dict_pass = {}
    return render(request, 'accounts/index.html', dict_pass)

如果不用装饰,那么是可以正常跳转的,但是用了装饰器就无法正常跳转到index页面了,用户名密码也没有输错,包导入也没有问题。

问之前我查了下相关的话题,没有人遇到过这种问题啊,都是直接吧login_required放上去就可以了,举的例子也都是这样的,这就奇怪了。

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(2)
Ty80

Lihat dokumentasi @login_required dan kod sumber: https://docs.djangoproject.co...

Untuk menyebut secara ringkas, pengesahan @login_required ialah request.user.is_authenticated. Contoh rasmi menggunakan sesi sesi, dan maklumat log masuk telah dimasukkan ke dalam sesi apabila log masuk ke paparan.

黄舟

Selepas log masuk berjaya, gunakan django.contrib.auth.login(request, user) untuk menyimpan pengguna ke dalam sesi

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!