如何在django2.12中扩展默认用户模型

时间:2019-06-06 11:49:11

标签: python django django-models

我正在一个项目上,我没有使用默认的django用户模型,而是使用了自己的自定义用户模型。但是我遇到了一个问题。对于我的用户模型,我还制作了我自己的authb.py文件,该文件在下面提供,如果我使用的是默认的django身份验证,则它仅对我的超级用户而不是我通过注册表单输入的用户进行身份验证。完全卡住了。

首先这是我的authb.py     从.models导入用户

class AuthB:

def authenticate(self, username=None, password=None):
    try:
        user = User.objects.get(username=username)
        return user
    except:
        return None

def get_user(self, user_id):
    try:
        return User.objects.get(pk=user_id)
    except:
        return None

但是现在我不使用此authb,而是使用默认身份验证。 这是我的用于用户模型的models.py

class User(models.Model):
is_authenticated = True
username = models.CharField(max_length= 25)
email = models.CharField(max_length= 150)
password = models.CharField(max_length= 100)
last_login = models.DateTimeField(auto_now= True)
profilepic = models.CharField(max_length= 255, default= "")

def __str__(self):
    return self.username

这是我的views.py文件

def signup(request):
# context = {}
# return render(request, 'sign-up.html', context)


if request.method == 'POST':
    # print(request.POST)
    # Get form values
    username = request.POST['username']
    email = request.POST['email']
    password = request.POST['password']

    # Check if passwords match
        # Check Username 
    if User.objects.filter(username=username).exists():
        return redirect('signup')

    else:
        if User.objects.filter(email=email).exists():
            return redirect('signup')

        else:
            u = User.objects.create_user(username=username, password=password, email=email)
            u.save()
            return redirect('login')
else: 
    return render(request, 'sign-up.html')

def login(request):
# context = {}
# return render(request, 'index.html', context)


if request.method =='POST':
    # print(request.POST)
    email = request.POST['email']
    password = request.POST['password']

    u= auth.authenticate(email=email, password=password)
    return redirect('index')
else: 
    return render(request, 'login.html')

主要问题是简单用户无法登录我的网站,只有管理员才能登录和django,而我没有对我的简单用户进行身份验证。

0 个答案:

没有答案