inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지

WYSIWYG 의 소개 및 적용

질문이요~

184

하동원

작성한 질문수 11

1

Article 수정하거나 만들때,

project 선택하는 부분에서요

project = 
forms.ModelChoiceField(queryset=Project.objects.all(), required=False)



내가 만든 Project만 선택하게 하고싶은데

queryset안에서 filter 처리 하기 위한 데이터를 가져오고싶은데

form안에서는 가져올수 없나요?

예를들어 view에서는 requset.user로 user 정보를 가져올수있는 것처럼요

docker django python

답변 1

0

Hyong Sok Park

안녕하세요 하동원님!

다시 커스터마이징 관련 질문이네요!

물론 질문주신 문제를 해결하는 여러 방법이 있겠지만
제 나름대로 편한 형식으로 답변을 드리겠습니다.

일단 queryset를 수정하는것이 주요한 목표입니다.
현재 설정되어있는 Project.objects.all() 으로는 모든 프로젝트들이 선택지에 노출되기 때문에,
해당 쿼리셋을 수정해주는것이 필수적입니다.

그래서 저는 get_form 메서드를 오버라이딩 해서 해당 내용을 구현해보겠습니다.


class
ArticleCreateView(CreateView):
model = Article
form_class = ArticleCreationForm
template_name =
'articleapp/create.html'

...

def get_form(self, form_class=None):
form =
super(ArticleCreateView, self).get_form()
form.fields[
'project'].queryset = Project.objects.filter(creator_id=self.request.user.id)
return form

이런식으로 CreateView 내부의 get_form 을 오버라이딩 해줍니다.

간단하게 설명을 하자면, form 을 가져오는 get_form 메서드가 있는데,
해당 form을 가로채서 form 내부의 project queryset을 수정해준 이후 다시 되돌려주는 방식입니다.

결과적으로 사용자에게는 필터링된 project들만 보여지게 되겠죠?

원래 다른 방법으로 한 내용을 답변 달아드렸는데,
해보니까 필터링은 되는데 제대로 작성이 되지 않더라구요 ㅠ

다른 방법으로 해서 답변 다시 남겨드립니다.
이 답변도 꼭 정답이 아니라, 다른 방법으로도 구현이 가능하다는점 알아주시구요!

아무튼 답변이 도움이 되셨으면 좋겠네요!
부족하다면 계속 질문 남겨주시고 오늘도 좋은하루 보내시길 바래요~

0

하동원

선생님 감사합니다

get_form이란게 있었군요.

다양한 메소드가  있는 걸 보니 

cdn을 읽으면서 공부해야겠어요.

바쁘신데 감사합니다!

강의에 나왔던 js 파일이 깃허브에 없습니다

1

63

1

모바일 디버깅, 반응형 레이아웃 4분48초 질문

0

43

1

decorator 관련질문입니다.

0

49

1

PasswordChangeView

0

92

2

로그아웃뷰 작동 관련 (2025년 3월)

1

129

1

실행에러질문

0

146

1

@login_required 데코레이터 사용시 리다이렉트는 어디서 참조하여 설정을 하는걸까요?

0

109

1

CacheBackend 관련 에러

0

169

1

21강 CreateView를 통한 회원가입 구현 질문

0

318

1

53강 disallowedhost

0

330

2

502 Bad Gateway

0

467

1

mariadb 접근권한 오류

0

532

2

logout 후 빈 화면으로 이동합니다 ㅠㅠ

0

450

2

로그아웃 후 빈 화면으로 이동

0

324

1

서버 운영 관련 질문 드립니다.(Unable to retirve...)

0

227

1

static/base.css파일을 인식을 못합니다

0

373

1

안녕하세요 19강 디버깅 설정 질문있습니다.

0

287

1

프로필 update편 질문있습니다.

0

371

1

수업질문

0

387

1

COOP error

0

523

1

61강 Dockerfile error

0

589

1

static안에 base.css 에서 정의한 클래스가 적용되지 않습니다.

0

481

1

static 파일 중 jpg 파일만 로드 불가

0

408

1

58강 static 파일 적용 안됨

0

538

1