inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

페이스북 클론 - full stack 웹 개발

newpost forms

post/forms.py의 PostForm과 templates에서의 form이 어떻게 연결 될까요?

236

king7762225

작성한 질문수 10

1

CommentForm같은 경우에는 {{ comment_form }}으로 CommentForm을 templates에 전달하는것 같고,

accounts의 login같은 경우는

id="{{form.username.id_for_label}}" name="form.username.html_name}}"  이렇게 

LoginForm을 templates으로 전달하는거 같더라고요.

PostForm은 templates에 따로 Postform에 대한 것을 쓰지 않고 바로 new_post.js에서 ajax 통신을 하더라고요.  이거 어떻게 이해해야 좋을까요? 

python django linux HTML/CSS javascript 클론코딩

답변 1

0

카인드패밀리

이런.. king7762225님 답변이 한참늦었네요 ㅠ ㅠ 죄송해요 

세가지 케이스가 form 을 통해 database에 값을 전달 하는 것은 동일합니다

대신에 상황에 따라 방법을 조금씩 다르게 사용을 한건데요 

CommentForm은 post/views.py이 comment_new 함수형 뷰에서 post/forms.py에서 정의한 CommentForm을 가져와서 값이 존재한다면 post/comment_new_ajax.html 파일로 입력값을 보내서 댓글부분을 만들고 포스트리스트를 보여주는 부분에서 ajax를 통해 가져온다고 보시면 됩니다

acounts는 accounts/view.py 의 LoginForm 함수형 뷰에서 accounts/forms.py에서 정의한 LoginForm을 가져와서 장고가 기본적으로 가지고 있는 인증기능인 authenticate를 활용해서 로그인 기능을 구현했습니다

PostForm 같은 경우에는 post/views.py의 post_new 함수형 뷰에서 post/forms.py에서 정의한 PostForm을 가져와서 사용합니다 다만 최초에 값을 new_post.js로 넘겨서 ajax 통신을 해서 새글을 작성하자 마자 포스트 리스트에서 확인이 가능하도록 구성을 했습니다

결국 forms.py에서 정의한 폼을 url요청을 통해 동작하는 views.py에 정의한 함수형 뷰로 동작시키는 프로세스는 동일합니다 다만 필요와 상황에 따라서 조금씩 사용하는 방법이 다르다고 보시면 될것 같습니다 ^ ^ 

질문 갑사드립니다 ^^ 

전체 코드는 어떻게 얻을 수 있을까요?

0

325

0

게시물 만들기 부분이 이상해요..

0

213

0

footer가 수정이 안된다는 걸 이해를 못하겠어욤

0

234

0

"제주에 나만에 가게를 차리고 싶어요 3" 코드가 예제소스에 없어요

0

253

1

연습문제 - 확률 주피터에 없어요

0

265

0

영상이 짤려 있네요 - 6회차 - 코로나 Data 분석(성별, 나이)

0

152

0

javascript의 remove에 대해 문의 드려요

0

182

0

ajax의 prepend를 왜 하는 건지 알고 싶어요

0

176

0

def nickname(request, post): post에 대해 질문 드립니다

0

148

0

UserCreationForm.Meta.fields + ('email',)를 해주는 이유가 무엇인지 알고 싶습니다.

0

264

0

admin add 에서 post 선택이 헷갈리는 문제

0

148

0

북마크 에러.

0

230

1

테스트서버

0

279

0

채팅구현

1

249

0

에러 질문드립니다.

1

408

3

13:09 alert 출력

0

362

1

type 'PosixPath' is not iterable 에러

0

1427

1

8분쯤, uwsgi -i .config/uwsgi/uwsgi.ini

0

267

1

uwsgi --http :80 --home /workspace/djangomtv/venv --chdir /workspace/djangomtv --static-map /static=/workspace/djangomtv/staticfiles/ -w djangomtv.wsgi

0

189

0

1분 20초경 질문입니다

0

142

0

00:54 전부 주석처리 하는 단축키가 먼가요?

0

2000

2

git remote add 입력시 에러가 뜹니다.

0

170

1

vscode 사용중이라, bitnami 설치해서 해봤는데 업데이트가 안되요!

0

265

1

맥에서의 연결법도 올려주셨으면 좋겠어요!

0

173

1