0%

Django-Form-Login

Django form Login

1. 로그인 예외처리

1
<form.py>
2
class LoginForm(forms.Form):
3
    username = forms.CharField(
4
        error_messages={
5
            'required': '아이디를 입력해주세요.'
6
        },
7
        max_length=32, label="사용자이름"
8
    )
9
    password = forms.CharField(
10
        error_messages={
11
            'required': '비밀번호를 입력해주세요.'
12
        },
13
        widget=forms.PasswordInput, label='비밀번호'
14
    )
15
16
    def clean(self):
17
        cleaned_data = super().clean()
18
        username = cleaned_data.get('username')
19
        password = cleaned_data.get('password')
20
21
        if username and password:
22
            try:																					#1
23
                user = User.objects.get(username=username)
24
                if not check_password(password, user.password):
25
                    self.add_error('password', '비밀번호를 틀렸습니다.')
26
                else:
27
                    self.user_id = user.id
28
            except Exception:															#2
29
                self.add_error('username', '존재하지 않는 아이디입니다.')

1) 예외가 발생할 수 있는 문장입니다.

2) 예외가 발생한 경우, form의 error필드에 데이터를 삽입할 수 있습니다.

2. 404페이지로 redirect

1
from django.http import Http404
2
3
try:
4
  board = Board.objects.get(pk=pk)
5
except Board.DoesNotExist:
6
  raise Http404('페이지를 찾을 수 없습니다.')     #1

1) raise Http404(‘보여줄 메시지’)를 사용하여 404페이지로 redirect 시킬 수 있습니다.