我是Django的新手,我正在尝试的概念非常简单。我创建了自定义模型(我不想扩展任何预定义的模型(。使用此代码,我尝试验证我的登录:
Models.py : (我在这里只给出了示例数据。这不是我使用的真实数据。我的客户希望我使用任何内置模型,如AbstractBaseUser等。
from django.db import models
#from django.contrib.auth.models import User
class logindata(models.Model):
fname= models.CharField(max_length=30)
lname = models.CharField(max_length=30)
uname = models.CharField(max_length=30)
password = models.CharField(max_length = 30)
Views.py
def auth_view(request):
username = request.POST.get('username','')
password = request.POST.get('password','')
user =auth.authenticate(uname=username, password=password)
if user is not None:
auth.login(request, user)
return HttpResponseRedirect('/accounts/loggedin',{'user':user})
else:
return HttpResponseRedirect('/accounts/invalid')
def loggedin(request):
return render_to_response('loggedin.html',
{'name':request.user.uname})
我的问题很简单。 我希望身份验证查看我的自定义模型(登录数据(而不是默认模型。我该怎么做??
如果你想创建自定义的用户模型,Django 提供了一个可以扩展和使用的django.contrib.auth.models.AbstractBaseUser
模型。Django 文档有一整节专门讨论这一点,看看。
如果你对 Django 的用户模型完全满意,并且只想添加一些额外的配置文件信息,你可以简单地子类django.contrib.auth.models.AbstractUser
并添加你的自定义配置文件字段。此类提供默认User
作为抽象模型的完整实现。
您可以在 github 上浏览代码以查看要扩展的内容。
尝试使用设置AUTH_USER_MODEL
定义自定义模型
我没有自己测试它,也许它会要求你对 django BaseUser 进行子类化,但你应该尝试一下。
- 在你更新可以使用 Django 基本模型之后,我可以说这种方法肯定会起作用。