inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍

CBV, FormView(폼 뷰)에 대해 알아보기

reverse vs reverse_lazy 사용 이유와 차이점을 이해하지 못 했습니다.

해결된 질문

214

sunnnwo

작성한 질문수 23

0

reverse 와 reverse_lazy가 호출 즉시 평가한다. 지연평가한다. 여기서 평가가 의미하는게 뭔지 잘 모르겠습니다. 그리고 form_valid는 어디서 호출이 되는건가요. 전반적으로 이해가 잘 안되어 질문에 두서가 없습니다. 죄송합니다.

python django bootstrap rest-api drf

답변 1

0

미쿡엔지니어

안녕하세요 sunnnwo님,

"평가"는 코드가 실제로 실행되어 값을 계산하는 것을 의미합니다. reversereverse_lazy는 Django에서 URL을 문자열로 반환하는 함수입니다. 이 둘의 차이는 언제 평가되는지에 있습니다:

  • reverse: 호출 즉시 평가됩니다. 즉, reverse를 호출하는 순간 URL이 즉시 계산되어 반환됩니다.

  • reverse_lazy: 지연 평가됩니다. 즉, reverse_lazy는 필요할 때까지 URL 계산을 미룹니다. 일반적으로 클래스 기반 뷰에서 URL을 사용하기 전에 뷰가 로드되기 때문에, 필요할 때까지 미루는 reverse_lazy가 적합합니다.

따라서, reverse_lazy는 URL을 즉시 계산하지 않고, 해당 URL이 실제로 필요할 때까지 평가를 미루는 방식으로 동작합니다.

 

form_valid 메서드

form_valid 메서드는 Django의 클래스 기반 뷰에서 폼 데이터가 유효하다고 판단되었을 때 자동으로 호출됩니다. 예를 들어, CreateViewUpdateView 같은 뷰에서 폼 검증이 성공하면, Django가 form_valid 메서드를 호출합니다.

보통 form_valid 메서드는 데이터를 저장하고 사용자가 폼 제출 후 이동할 URL을 반환하는 역할을 합니다. 예를 들어, 아래와 같은 코드에서:

class MyCreateView(CreateView):
    model = MyModel
    form_class = MyForm
    success_url = reverse_lazy('success-url')

    def form_valid(self, form):
        # form의 데이터 저장 등 필요한 작업을 수행
        return super().form_valid(form)

form_valid가 호출되면 폼 데이터가 저장되고, success_url로 리다이렉트됩니다. form_validCreateViewUpdateView 등의 폼을 사용하는 클래스 기반 뷰에서 자동으로 호출되기 때문에, 사용자가 따로 호출할 필요는 없습니다.

Dockerfile 질문

0

75

2

Logging 질문

0

126

1

0.0.0.0:8000 접속이 안됩니다

0

296

2

블로그 게시

0

171

2

{{form.as_p}} 사용방법 질문드립니다.

0

229

2

urls.py에 라우팅 하는 부분에서요.

0

161

2

handler, static 질문이 있습니다.

0

188

2

build: context 부분이 이해가 되지 않습니다.

1

215

3

직렬화 질문

0

151

1

Celery 수업중 세팅 질문드립니다.

1

181

1

6-1 질문

1

216

1

channels alternative?

1

207

1

크롬에서 서드 파티 쿠키 제한이라는 에러가 뜨는데 혹시 추가로 어떤걸 업데이트 해야지 정상작동 되는지 알 수 있을까요?

0

741

2

dock 환경설정에 대해 잘 이해가 가지 않습니다.

1

282

1

Django Authentication 중에 로그아웃 기능이 안됩니다 ㅠㅠ

1

344

1

학습방식

1

321

2

docker, flower 질문

0

303

1

docker 컨테이너 환경설정 문제

0

1641

1

celery-worker, beat, flower, docker-compose 질문

1

635

1

4-1 공식문서

1

252

1

장고 프로젝트 질문

2

291

1

복습

1

256

1

온라인 ide

1

324

2

vs code

1

364

2