장고:view 각종 기능: 두 판 사이의 차이
둘러보기로 이동
검색으로 이동
(→권한관리) |
편집 요약 없음 |
||
(다른 사용자 한 명의 중간 판 15개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
{{장고}} | {{장고}} | ||
<br /> | <br /> | ||
==권한관리== | ==권한관리== | ||
93번째 줄: | 9번째 줄: | ||
from django.contrib.auth.decorators import login_required #로그인이 있어야 가능함 | from django.contrib.auth.decorators import login_required #로그인이 있어야 가능함 | ||
@login_required(login_url=' | @login_required(login_url='로그인링크가 어디인지 지정') | ||
def question_create(request): | def question_create(request): | ||
if request.method == 'POST':#포스트로 요청이 들어온다면... 글을 올리는 기능. | if request.method == 'POST':#포스트로 요청이 들어온다면... 글을 올리는 기능. | ||
105번째 줄: | 21번째 줄: | ||
def index(request): | def index(request): | ||
객체 = self.request.user.id #현재 로그인한 사용자의 아이디를 얻을 수 있다. | 객체 = self.request.user.id #현재 로그인한 사용자의 아이디를 얻을 수 있다. | ||
</syntaxhighlight> | |||
====클래스형 뷰라면?==== | |||
함수형 뷰라면 위처럼 데코레이터를 두면 되지만, 클래스형 뷰라면 앞에 상속을 한 번 더 해준다.<syntaxhighlight lang="python"> | |||
from django.contrib.auth.mixins import LoginRequiredMixin | |||
class 클래스형뷰(LoginRequiredMixin, 상속할 뷰) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
2021년 5월 25일 (화) 23:21 기준 최신판
장고! 웹 프레임워크! 틀:장고
권한관리[편집 | 원본 편집]
로그인[편집 | 원본 편집]
로그인이 있어야 필요한 기능은 다음과 같은 형태로 구현.(함수 앞에 둔다.)
from django.contrib.auth.decorators import login_required #로그인이 있어야 가능함
@login_required(login_url='로그인링크가 어디인지 지정')
def question_create(request):
if request.method == 'POST':#포스트로 요청이 들어온다면... 글을 올리는 기능.
form = QuestionForm(request.POST) #폼을 불러와 내용입력을 받는다.
from django.shortcuts import render
from .models import 모델명#모델을 임포트 한다.
#모델.objects는 객체목록을 받는다는 의미이다.
def index(request):
객체 = self.request.user.id #현재 로그인한 사용자의 아이디를 얻을 수 있다.
클래스형 뷰라면?[편집 | 원본 편집]
함수형 뷰라면 위처럼 데코레이터를 두면 되지만, 클래스형 뷰라면 앞에 상속을 한 번 더 해준다.
from django.contrib.auth.mixins import LoginRequiredMixin
class 클래스형뷰(LoginRequiredMixin, 상속할 뷰)
기타 기능[편집 | 원본 편집]
url 주소 불러오기[편집 | 원본 편집]
url 주소를 불러오는 기능을 넣을 때 하드코딩 해두면 나중에 수정이 일어날 때 또 일일이 바꿔야 하는 경우가 생긴다.
그럴 땐 reverse('앱이름:인덱스', args=('넘길변수',))
형태로 해당하는 url을 추출할 수 있다.
탬플릿에 보낼 땐 render로 처리하기 때문에 잘 쓰진 않는 기능이다.