inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Quyết định và Django! Tạo Pinterest bằng Django: Từ đầu đến triển khai

41강에서 필터링 부분 문의 드립니다

236

mnmndevlol

17 câu hỏi đã được viết

0

41강 6분 13초에 하신 말씀이신데요.

현재의 프로젝트의 오브젝트같은프로젝트를 가진 아티클을 object_list 에 담았다.

object_list = Article.objects.filter(project=self.get_object())

느낌적으로는 알겠는데 한국말로 번역이 잘 안돼서요 ..

이 바로 다음에 detail.html에서

article_lis에서 아무 게시물이나 전체 다 뽑아내면 안되니까 with태그를 사용해서 필터링이 되어있는 object_list를 담아서 쓴다는건 알겠는데요 (틀리면어쩌지)

그리고 다시 저 색칠해둔거 보면 또 혼란이 와서요.

어떻게 필터링이 된건지를 모르겠어요.

어떤부분이 필터링이 된 부분인지.. 어떻게 해서 프로젝트 디테일부분을 보면 해당 프로젝트 사진들만 싹 나오는건지

느낌만 있고 어디부분인지 명확히 잘 모르겠어서 한번 질문드려봅니다.. 

 

docker python django

Câu trả lời 2

0

mnmndevlol

감사합니다! 

0

Hyong Sok Park

안녕하세요!
질문 확인했습니다.

일단 프로젝트 detail 페이지에서 해당 프로젝트에 해당하는,
그러니까 해당 게시판에 해당되는 게시글만 필터링해서 보여주는 것이 목적이라는 점을 염두에 두시고
답변을 참고해주시면 감사하겠습니다.

object_list = Article.objects.filter(project=self.get_object())

구문을 하나하나 해석해보도록 하겠습니다.

Article.objects.filter(project=self.get_object())

먼저 봐야할 것은 Article.objects.filter 구문,
그러니까 Article 객체들을 필터링 하는 과정입니다.
모든 데이터베이스에 저장되어있는 Article 객체들 중에서 
어떤 조건에 맞는 객체들만 걸러내주는거죠.

Article.objects.filter(project=self.get_object())

그 다음으로 봐야할 것은 조건문입니다.

이 부분을 해석하자면 project 라는 값이 self.get_object() 와 같은 값인 조건을 명시하고 있습니다.
이 project의 경우에는, 저희가 처음에 만들었던 Article 모델을 다시 보게 되면,


class Article(models.Model):
writer = models.ForeignKey(User, on_delete=models.SET_NULL, related_name='article', null=True)
project = models.ForeignKey(Project, on_delete=models.SET_NULL, related_name='article', null=True)

title = models.CharField(max_length=200, null=True)
...

이런식으로 Article객체에는 project 라는 이름의 ForeignKey 가 존재하는 것을 볼 수 있죠.
간단하게 말하면 Project 객체와의 연결고리가 있다는거죠.

그리고 self.get_object() 의 경우에는
지금 현재 요청에 포함된 pk 값을 가지는 프로젝트 객체가 될것이구요.
 

object_list = Article.objects.filter(project=self.get_object())

결국 위의 모든 구문이 의미하는 것은 

1. Article 모든 객체들 중에서
2. Article 속성 중 project가
3. 지금 유저가 요청 하는 project 객체와 같은
4. 모든 Article 객체를 object_list 라는 변수에 저장

하는 과정이라고 보시면 됩니다.

결국 게시판의 글들만 필터링하는거죠.

답변이 도움이 되셨을지 모르겠네요.
좋은하루 보내시길 바랍니다!

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

1

67

1

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

0

45

1

decorator 관련질문입니다.

0

51

1

PasswordChangeView

0

93

2

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

1

130

1

실행에러질문

0

147

1

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

0

110

1

CacheBackend 관련 에러

0

171

1

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

0

319

1

53강 disallowedhost

0

334

2

502 Bad Gateway

0

469

1

mariadb 접근권한 오류

0

533

2

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

0

451

2

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

0

325

1

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

0

228

1

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

0

374

1

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

0

288

1

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

0

373

1

수업질문

0

389

1

COOP error

0

524

1

61강 Dockerfile error

0

593

1

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

0

487

1

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

0

412

1

58강 static 파일 적용 안됨

0

541

1