장고 프레임워크24 장고 기본 인증 4) loginForm Custom (퀴즈를 맞춰야 로그인) https://github.com/django/django/blob/master/django/contrib/auth/views.py 위 장고 소스를 보면 LoginView에서 Default로 AuthenticationForm을 보여주는 것을 알 수 있다. form_class를 AuthenticationForm에서 AuthenticationForm을 상속받아 Custom으로 LoginForm 을 만든다. 임의로 'answer' field를 하나 만들고, clean_FILED( ) 함수를 정의하여 유효성 검사를 수행하고, 조건을 충족하지 않는다면 ValidationError를 발생시키는 방법으로 퀴즈를 맞춰야 로그인이 되는 Custom Login Form 을 생성할 수 있다. 2020. 6. 21. 장고 기본 인증) 1 로그인 처리 https://github.com/django/django/tree/master/django django/conf/global_settings.py Django 기본 APP에서 LOGIN_URL의 default값은 아래에서 볼 수 있다. (@login_required 장식자 달린 함수 호출할때 로그인 안되어 있으면 Default는 LOGIN_URL 주소로 이동함) 그래서 계정 관련 APP 이름을 accounts로 만들면 해당 설정값 변경 없이 사용할 수 있다. #### Django의 기본앱에 contrib에 auth 앱에 Account 관련 소스들이 존재한다. https://github.com/django/django/tree/master/django/contrib/auth Django Auth App에.. 2020. 6. 18. 5 - mixins 상속을 통한 APIView 로직 재사용 MIXIN 이란 ? 파이썬에서 mixin 문법은 따로 없고, 파이썬 class의 상속 문법을 활용하는 방식이다. 약간 어려운 내용이라 아직 잘 이해가 안되서 다음으로 넘긴다. 2020. 6. 17. forms.py @login_required def comment_new(request, post_pk): post = get_object_or_404(Post, pk=post_pk) if request.method == 'POST': form = CommentForm(request.POST, request.FILES) if form.is_valid(): comment = form.save(commit=False) # author와 post 정보가 form에 지정되어 있지 않기 때문 comment.post = post comment.author = request.user comment.save() return redirect(comment.post) else: form = CommentForm() return rende.. 2020. 6. 13. 이전 1 2 3 4 5 6 다음