STUDY/Python

Team Project 3 | ManytoManyField 불러오기 | CSV to JSON | 6월 8일

nicesugi 2022. 6. 9. 02:27

Team Project 3  |  Watch a Movie N.11

 Github  https://github.com/2JYK/Watch-a-movie-N.11-Django

영화 추천 시스템 ; 사용자가 작성한 영화 리뷰를 토대로 영화를 추천

👩🏻‍💻 담당 파트 : movie app  > 메인 페이지 & 영화 상세 페이지

 

🌱 6월 8일

✔️ CSV파일 json으로 바꾸어 데이터베이스에 적용

✔️ ManytomanyField 인 Tag(영화장르) 붙이기

✔️ 메인페이지에서 보여지는 영화들 랜덤 설정

✔️ 선택한 영화의 정보를 상세페이지에서 확인할 때, 밑에 보여지는 추천 영화와 중복시 추천영화에서 제외

✔️ 전체적인 프론트엔드로 사이즈, 위치 설정

 

👍 포스팅 내용

➕ ManytoManyField 불러오기

 CSV to JSON

 현재까지 결과물


😱 ManytoManyField 불러오기 

직접적으로 부를 수 있는 클래스가 아니기 때문에 Movie 클래스에서 타고 들어가는게 너무 복잡해서 시간이 많이 걸렸었다.

이걸 어떻게 불러오지서부터 리스트에서 str로 넘어가는 법이라던지 고민을 많이 해본 하루였고 그만큼 더 공부를 많이 한 듯!

나의 경우에는 class Tag 의 tag 를 화면에 보이게 표시를 하는 작업으로

데이터베이스, 클래스, 불러오는 함수와 주석, print시 터미널 결과값도 같이 적어두었다.

 

Tag 테이블
ManyToManyField 값 불러오는 방법 5번 코드

 

# movie.tags 는 변수일 뿐. 다만, list안의 movie.tag랑 중복되면 error 발생
# 쿼리셋으로 출력됨
# 처음 시도했던 방식 > 리스트 형식 [<Tag: Horror>]
# values_list : (id, 'Horror') 처럼 value 값을 다 보여줌 / 현재Tag에 tag만 있어서 2개밖에 안나옴
# values_list : 클래스 안에 있는 value값 중에 (title/image등에서) 'tag'값만
# flat : ()를 빼주어 값만 보여줌
# join : list -> str & ", "을 더해줌
 
쭉 프린트를 찍어본 결과로 코드와 주석을 보면서 이해하면 좋을 것 같다.
print- 터미널 결과값
 

😱 CSV to JSON

현재 머신러닝을 하고 있는 팀원이 깔끔하게 전처리를 해줘가며 넘겨주었기 때문에 안되는 것 없이 잘 되었다.

다만.. tag 또 tag !!!!!!

아래 PyCharm 2분할된 화면 (하단)을 보자면, "[Crime, Drama, Thriller]" 가 보일 것이다.

이 부분을 원인으로 PyCharm 상단의 빨간점 13번 코드에서 Error 발생

strip()
split()

strip과 split을 사용해 해결하였으나, 코딩테스트를 하면서 자주 연습해봐야겠다. 

분명 사용해봤던거지만 단번에 떠오르지 않았고 도움을 받아 진행을 했었다.

결과는 github에 공유중입니다.

commit -m "Feat : csv->데이터베이스 로드 확인 / 브라우저에서 확인 가능" > movie_loader.py

fixtures.json

 


현재까지 결과물

좌-메인페이지 / 우-상세페이지

현재까지

 

 

 

반응형