본문 바로가기
airbnb clone coding

[Django] 6_4. Models and Admin: Reviews / Wish Lists / Bookings / Medias / Messages

by busybee-busylife 2024. 7. 13.
728x90

Reviews 만들기 

1) python manage.py startapp reviews

2) config > settings.py 의 CUSTOM_APP에 추가(install the application)

3) review의 모델 만들기

 

4) admin 패널에 추가 

 

 

Wish List 만들기 

1) python manage.py startapp wishlists

2) config > settings.py 의 CUSTOM_APP에 추가(install the application)

3) wish list의 모델 만들기 

 

4) admin 패널에 추가 

 

 

 

 

Bookings 만들기 

1) python manage.py startapp bookings

2) config > settings.py 의 CUSTOM_APP에 추가(install the application)

3) bookings의 모델 만들기 

- 하나의 room은 여러개의 예약을 가질 수 있다 & 하나의 예약은 하나의 room만 가질 수 있다 => ForeignKey

 

4) admin 패널에 추가

 

 

 

Medias 만들기 

1) python manage.py startapp medias 

2) config > settings.py 의 CUSTOM_APP에 추가(install the application)

3) medias의 모델 만들기 

 

4) admin 패널에 추가

 

 

 

Direct Messages 만들기 

1) python manage.py startapp direct_messages 

   - django에 기본으로 messages라는 이름의 애플리케이션이 있어서 'messages'라는 이름을 사용할 수 X  

2) config > settings.py 의 CUSTOM_APP에 추가(install the application)

3) direct_messages 의 모델 만들기 

🚨 에러발생 🚨

Room 애플리케이션에서도 'Room'이름을 가진 클래스가 user와 연결되어있다 

두 애플리케이션에서의 클래스가 이름이 같은 것이 문제가 아니다

문제는 같은 이름을 가진 2개의 모델이 같은 모델(User)과 연결되어 있다는 것 

(채팅방도 user 모델을 보고 있고 & 숙박하는 room도 user 모델을 보고 있다)

 

🤸🏻해결방안 🤸🏻

(임시방편) direct_messages의 Room클래스의 이름을 변경해준다: Room -> ChattingRoom

자세한 내용은 ORM을 배운 후 더 알아본다 

 

4) admin 패널에 추가

 

5) 이름 변경: verbose_name

728x90