장고:view 각종 기능
장고! 웹 프레임워크! 틀:장고
권한관리[편집 | 원본 편집]
로그인[편집 | 원본 편집]
로그인이 있어야 필요한 기능은 다음과 같은 형태로 구현.(함수 앞에 둔다.)
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로 처리하기 때문에 잘 쓰진 않는 기능이다.