1. User Model 업데이트: users > models.py
1) profile: 이미지 넣기
avatar = models.ImageField()
터미널에서 Pillow 설치: poetry add Pillow
2) gender
User 클래스 내부에 GenderChoices 클래스를 만들고
-> gender 변수에서 위 클래스의 초이스 중 하나를 선택하도록 한다
3) language
gender와 같이 한다
4) currency
gender와 같이 한다
2. Admin에 등록: users > admin.py
CustomUserAdmin 클래스의 fieldsets에 추가
3. Rooms 애플리케이션 만들기
1) python manage.py startapp rooms
2) config > settings.py 의 CUSTOM_APPS에 추가
CUSTOM_APPS = [ 'users.apps.UsersConfig', 'rooms.apps.RoomsConfig', ]
3) rooms > models.py 에서 room 모델 만들기
4. Relationship
Many-to-One: [Room1, Room2, Room3] => User1
One-to-Many: User1 => [Room1, Room2, Room3]
Many-to-Many: [Amenity1, Amenity2, Amenity3] => [Room1, Room2, Room3]
Room 클래스의 created_at, updated_at은 다른 애플리케이션에서도 반복적으로 사용될 것
-> 별도의 애플리케이션으로 만든다
1) python manage.py startapp common
다른 앱들과 공유할 공통 코드를 가지는 common 애플리케이션을 만든다
2) config > settings.py 의 CUSTOM_APPS에 common 앱을 추가
CUSTOM_APPS = [ 'users.apps.UsersConfig', 'rooms.apps.RoomsConfig', 'common.apps.CommonConfig']
3) common > models.py 에서 모델 만들기
👉🏻 여기서 만든 모델은 데이터베이스에 추가하지 않는다 👈🏻
(다른 모델에서 재사용하기 위해 만드는 것)
rooms > models.py 에서 CommonModel을 임포트하고 클래스마다 CommonModel을 상속받도록 수정
5. Admin에 등록: rooms > admin.py
list_display, list_filter를 이용하여 어떤 항목을 사용할지 결정
'airbnb clone coding' 카테고리의 다른 글
[Django] 6_3. Models and Admin: Category (1) | 2024.07.12 |
---|---|
[Django] 6_2. Models and Admin: Experiences (0) | 2024.07.12 |
[Django] 5_2. Users App: Foreign Keys (0) | 2024.07.11 |
[Django] 5_1. Users App: Customize (0) | 2024.07.11 |
[Django] 4_2. Django Apps: Admin + Documentation (0) | 2024.07.11 |