我在研究django项目。其实我在学习。我创建了自定义用户模型。我试图匹配确切的用户名案例让用户登录。我的models.py文件看起来像,
from django.db import models
from django.contrib.auth.models import AbstractBaseUser
class User(AbstractBaseUser):
uname = models.CharField(max_length=25, unique=True)
email = models.EmailField(max_length=200, unique=True)
joined = models.DateTimeField(auto_now_add=True)
is_active = models.BooleanField(default=False)
fname = models.CharField(max_length=50)
lname = models.CharField(max_length=50)
act_code = models.CharField(max_length=30)
suspended = models.BooleanField(default=False)
USERNAME_FIELD = 'uname'
def __unicode__(self):
return self.uname
这是我查询用户登录的查询,
try:
dbUserDetails = User.objects.raw("SELECT * FROM `hcAccounts_user` WHERE BINARY `uname` = '%s'",
cleaned_info['uname'])
except User.DoesNotExist:
response_data = {'error': 'true', 'message': 'Wrong username!!!'}
所以在我的数据库中我有两个用户,
'abc' and 'Abcd'
此行查询给出了错误
AttributeError at /accounts/login
'RawQuerySet' object has no attribute 'is_active'
此查询,
dbUserDetails = User.objects.get(uname__iexact=cleaned_info['uname'])
不匹配大小写,如果我使用此查询以用户名登录' abc',
dbUserDetails = User.objects.get(uname__contains=cleaned_info['uname'])
这将同时为两个用户提供uname包含' abc'。这不符合案例。那么有谁能告诉我如何匹配用户名来获取数据库中的信息?
我尝试了很多。我在网上搜索了很多答案。我不知道自己错过了什么,但我被困在这里。
感谢您的时间。我很感激。