Я работаю над проектами Django (1.4) и Python (2.7), в которых у меня есть пользовательская модель для входа пользователя в систему.
Вот моя модель: из models.py:
class User_table(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
address = models.CharField(max_length=300)
phone = models.CharField(max_length=20, null=True)
emailid = models.EmailField()
user_name = models.CharField(max_length=100)
password = models.TextField()
user_type = models.CharField(max_length=20)
# True means drive is available for delivery
status = models.BooleanField(default=True)
vehicle_no = models.CharField(max_length=50, blank=True, null=True)
gender = models.CharField(max_length=10)
profile = models.ForeignKey(AddedFile, on_delete=models.CASCADE, null=True, related_name='profile')
uploaded_document = models.ForeignKey(AddedFile, on_delete=models.CASCADE, null=True, related_name='document')
approval_status = models.BooleanField(default=False)
login_try = models.IntegerField(default=0)
is_active = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return str(self.id)
А вот мое мнение: Из views.py:
def mainlogin(request):
if request.method == "POST":
username = request.POST['username']
email = request.POST['email']
password = request.POST['password']
try:
obj = User_table.objects.get(user_name=username, emailid=email)
verify_password = ''
try:
verify_password = handler.verify(password, obj.password)
except Exception as e:
print(e)
if verify_password is True:
request.session['user_id'] = obj.id
request.session['user_type'] = obj.user_type
user_name = obj.first_name + ' ' + obj.last_name
request.session['user_name'] = user_name
if not obj.approval_status:
return HttpResponse('Your account is not confirmed by administration.')
obj.is_active = True
obj.login_try = 0
obj.save()
return redirect(home)
else:
try:
obj = User_table.objects.get(user_name=username, emailid=email);
if obj:
s = obj.login_try
s = s + 1
obj.login_try = int(s)
if int(obj.login_try) >= 3:
obj.login_try = 3
obj.save()
if int(obj.login_try) == 3:
id = obj.id
key = get_random_string(length=10)
reset_link = 'It seems you forgot password or someone is trying to login you account. This is your password reset link please do not share this with other ' + settings.EMAIL_URL + 'reset_password/' + str(
id) + ' key is : ' + str(key)
send_mail('Reset link', reset_link, settings.EMAIL_HOST_USER, [obj.emailid, ])
obj.password = str(key)
obj.save()
return HttpResponse(
'It seems you forgot password or someone is trying to login you account. Password Reset link has been sent to your email id')
except Exception as e:
print(e)
pass
return redirect(mainlogin)
except Exception as e:
print('error is : ', e)
return HttpResponse('An error has occurred.')
if request.method == "GET":
try:
return render(request, "login.html")
except Exception as e:
print(e)
Когда я пытаюсь войти, он возвращает ошибку:
(u'error is: ', DoesNotExist (' Запрос на сопоставление пользовательской таблицы не существует. ',))
Я посмотрел в базу данных и подтвердил, что яесть запись, которую я пытаюсь получить из представления, но она все еще из-за этой ошибки.
Что здесь может быть не так?
Помогите мне, пожалуйста!
Заранее спасибо!