В Django формах, логическая проверка для поля - PullRequest
0 голосов
/ 24 февраля 2020

В моей модели телефона есть три поля, адрес электронной почты и пароль.

class AppUser(models.Model):
    phone_number = models.CharField(validators=[phone_regex], 
    max_length=17, unique=True)
    email = models.EmailField(unique=False, null=True, blank=True)
    password = models.CharField(max_length=300)`

модель пользователя В формах я использую два поля phone_number и пароль формы класс Userloginform (forms.ModelForm):

class Meta:
    model = AppUser
    fields = ['phone_number', 'password']

Я пишу функциональность для пользователя, который может войти, используя номер телефона и адрес электронной почты. Функции входа в систему

def login_app_user(request):
    if request.method == 'POST':
        login_form = Userloginform(request.POST)
        username = request.POST['phone_number']
        password = request.POST['password']
        try:
            user = AppUser.objects.get(Q(email__iexact=username) | (Q(phone_number__iexact=username)), is_active=True)
            if user and check_password(password, user.password):
                request.session['username'] = user.phone_number
                # return HttpResponse('success')
                return HttpResponseRedirect('/homepage', {'username': user.phone_number})
            else:
                messages.warning(request, 'Invalid Credientials')
        except ObjectDoesNotExist:
            messages.warning(request, 'user doesnot exists')
    else:
        login_form = Userloginform()
    return render(request, 'navbar.html', {'form2':login_form})

Работает нормально. В Front end я использую Bootstrap Модальное всплывающее окно. это также работает нормально. Проблема в моем сообщении об ошибке. Если неправильный пароль, неправильный пароль для поля номера телефона , появится всплывающее сообщение об ошибке в самой форме, это работает. Когда я даю не существует, здесь я сталкиваюсь с проблемой. когда я даю идентификатор электронной почты, поле электронной почты не существует оно всплывает, но когда я использую номер телефона, оно не приходит. Я не знаю, где я допустил ошибку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...