0

我是 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)

视图.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})

我的问题很简单。我想通过身份验证查看我的自定义模型(登录数据)而不是默认模型。我怎么做 ??

4

2 回答 2

1

如果您想创建自定义用户模型,Django 提供了一个django.contrib.auth.models.AbstractBaseUser您可以扩展和使用的模型。Django 文档有一整节专门介绍这个,看看.

如果您对 Django 的 User 模型非常满意并且只想添加一些额外的配置文件信息,您可以简单地继承django.contrib.auth.models.AbstractUser并添加您的自定义配置文件字段。此类提供默认User作为抽象模型的完整实现。

您可以通过github上的代码查看要扩展的内容。

于 2013-10-09T06:27:42.567 回答
1

尝试使用设置定义您的自定义模型AUTH_USER_MODEL

我自己没有测试它,也许它会要求你将 django BaseUser 子类化,但你应该尝试。


  • 在您更新可以使用 Django 基础模型之后,我可以说这种方法肯定会奏效。
于 2013-10-09T06:04:14.823 回答