我正在制作登录表单并使用Django 1.8 Python 3.5
但我收到有效用户名和密码的密码不正确我该怎么办?
我已经制作了一个简单的登录表单,但我无法找出错误,请帮助
这是我的login/forms.py
from django import forms
from mainpage.models import User
from django.contrib.auth import (
authenticate,
login,
logout,
get_user_model,
)
class UserLoginForm(forms.Form):
username=forms.CharField(max_length=40)
password=forms.CharField(max_length=40,widget=forms.PasswordInput)
def clean(self,*args,**kwargs):
username=self.cleaned_data.get("username")
password=self.cleaned_data.get("password")
user_qs = User.objects.filter(username=username)
if user_qs.count() == 0:
raise forms.ValidationError("The user does not exist")
else:
if username and password:
user = authenticate(username=username, password=password)
if not user:
raise forms.ValidationError("Incorrect password")
if not user.is_active:
raise forms.ValidationError("This user is no longer active")
return super(UserLoginForm,self).clean(*args,**kwargs)
这是我的login/views.py
from django.shortcuts import render,redirect
from .forms import UserLoginForm
from django.contrib.auth import login as auth_loginwa
from django.contrib.auth import (
authenticate,
logout,
get_user_model,
)
def login_view(request):
form1=UserLoginForm(request.POST or None)
print(request.user.is_authenticated())
if form1.is_valid():
username=form1.cleaned_data.get("username")
password=form1.cleaned_data.get("password")
user=authenticate(username=username,password=password)
auth_loginwa(request,user)
if(request.user.is_authenticated()):
return redirect("home2")
context= {
"form1": form1,
}
return render(request, "login.html",context)
这是我的mainpage/models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
bio = models.TextField(max_length=500, blank=True)
location = models.CharField(max_length=30, blank=True)
birth_date = models.DateField(null=True, blank=True)
正如评论中所述
这是我的主页/ admin.py
from django.contrib import admin
from .models import User
admin.site.register(User)
这些是我不同用户的图片
superuser vaibhav2(使用命令python manage.py创建超级用户创建)Has encrypted password它的登录也获得成功
用户asd手动创建(No encrypted password see image)
答案 0 :(得分:1)
您需要创建一个自定义的ModelAdmin类,该类是内置的类。
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User
class CustomUserAdmin(UserAdmin):
model = User
admin.site.register(User, CustomUserAdmin)
答案 1 :(得分:1)
df['timestamp'] = pd.to_datetime(df['timestamp'], format='%d-%m-%y %H:%M')
df=df.sort_values(['user', 'timestamp'])
session = 1000
def counter(clause):
global session
if not clause:
session += 1
return session
df[['u', 't']] = df[['user', 'timestamp']].shift(-1).ffill()
df['session_id'] = df.apply(lambda x: counter(all([[x['user']==x['u']], (x['timestamp']-x['t']) >= -pd.Timedelta(minutes=20)])), axis=1)
文件
admin.py