노마드코더의 에어비앤비 클론코딩 강의 시작!https://nomadcoders.co/airbnb-clone구매해놓고서도 바빠서 못듣고 있었는데 이제서야....차이점이라면 나는 파이썬 3.9 버전과 장고 최신버전(22.07.15 기준 4.0.6)을 설치하여 사용
1. Pipenv 설치 Pipenv 파이썬 패키지를 설치하는 도구로 pip (Package Installer for Python)가 있지만 이는 전역(global)으로 설치하므로 프로젝트마다 환경을 다르게 설정해주어야 하는 경우에는 알맞지 않다. pipenv는 가상 환
장고 공식 문서에서는 상위 폴더에서 아래와 같은 명령어를 입력하여 장고 프로젝트를 생성하라고 안내한다.django-admin startproject hairbnb그러나 우리는 조금 다르게 진행할건데, 이미 생성해놓은 프로젝트 폴더로 들어가서 아래와 같이 입력한다djan
생성되어있는 db.sqlite3 파일을 삭제해보자.이 상태에서 다시 서버를 실행시키면 이전에 봤던 에러가 뜬다.관리자 페이지에 접속해보면 아래와 같이 뜬다.장소에서 데이터베이스 테이블을 검색하지만 존재하지 않는다.즉 장고와 데이터베이스가 지금 서로 연동이 되어있지 않다
이제 앱을 생성해보자.콘솔에서 아래와 같이 입력한다.django-admin startapp rooms이때 주의할 것은 앱 이름은 반드시 복수(plural)형으로 짓는다. room이 아닌 rooms아래와 같이 폴더와 파일들이 생성된다.그리고 다른 앱들도 생성해준다djan
admin 페이지에서 Users 항목을 들어가보면 아래와 같이 나온다.우리가 만든 Users앱은 여기에 기능이 조금 더 추가된 형태가 될 것이다. 가령 프로필 사진을 추가한다던가, 자기소개나 국적 등....니꼬 선생님은 공식 문서를 확인할 것을 강조하셨다.그 가르침에
성공적으로 Users 앱을 만들고 등록했지만 관리자 페이지에 가보면 이전에 있던 Users 모델이 사라졌다.이는 기존의 admin 패널에 있던 users를 대체해버렸기 때문에 안보이는 것이다.일단 코드를 아래와 같이 작성하자users - admin.pyfrom djan
생일, 언어, 통화, superhost에 대한 필드 추가생일은 날짜이므로 DateField,birthdate = models.DateField(null=True)언어는 문자열이므로 CharField이되, 임의로 입력하는 것이 아니라 선택지를 주기LANGUAGE_ENGL
새로운 앱을 settings.py에 등록한다.이때 등록하는 클래스의 이름은 rooms - apps.py에 있는 RoomsConfig로 한다.PROJECT_APPS = "users.apps.UsersConfig", "rooms.apps.RoomsConfig"
rooms - models.py - Roomhost = models.ForeignKey(models_user.User, on_delete=models.CASCADE)ForeignKey 관계에서 room은 단 하나의 host를 갖는다. host는 여러개의 room을 가질
Amenity와 Facility, HouserRule에 대한 클래스를 추가한다.class Amenity(AbstractItem): """Amenity Model Definition""" passclass Facility(AbstractItem): """
숙소에 대한 후기 기능을 추가할 것이다.Settings.py에 앱을 추가해준다.models.py를 작성한다.review - models.pyadmin.py를 설정한다reviews - admin.pymigrationadmin 패널\_\_str\_\_ 메소드 추가Revie
1) list_displayRoom의 Admin에 보여줄 내용을 추가하자.rooms - admin.py - RoomAdminAdmin 패널에서 Room이 이쁘게 나온다.2) list_filter내용을 걸러낼 수 있는 필터를 추가하자rooms - admin.py - Ro
amenities의 갯수를 확인하는 메소드로 변경 1) DB에서 object 가져오기 상황 : 2명의 사용자가 있다면 이 정보를 어디서 얻어오는가? 콘솔에서 장고 셸을 켜보자. 그리고 파이썬 코드로 User 클래스 내부를 살펴보자 여기서 세부 속성을 보려 하는데
1) users앱 users 앱 admin에서 보여지는 메뉴 추가 users - admin.py - CustomUserAdmin 리스트 필터 기능도 추가 users - admin.py - CustomUserAdmin 2) reviews 앱 메소드를 admin.py에
현재는 사진 업로드시 문제가 있다 1) 사진 파일이 폴더에 바로 업로드된다. 2) 사진 파일 링크가 제대로 안되어있다. 이를 해결하기 위해 MEDIA_ROOT 라는걸 설정해준다. 우리가 업로드한 파일들을 어디에 써야하는지 지정해주는 것이다. ![](https://v
현재는 user가 2명밖에 없지만 만약 수천명이 된다면 이렇게 해서 확인하기가 어려워진다.때문에 이런 ForeignKey나 ManyToMany로 연결된 필드들을 pk로 관리할 수 있도록 하자.raw_id_fieldsrooms - admin.py - RoomAdmin돋보
자작 명령어를 만들고 싶으면 아무 앱이나 들어가서 management 폴더를 만든다. 그리고 그 안에 \_\_init\_\_.py 파일을 생성한다. (깡통이어도 됨) 이 파일의 역할은 management 폴더가 장고, 파이썬 폴더임을 알려주는 것이다.그리고 해당 폴더
1) seed_amenities rooms - management - commands - seed_amenities.py 콘솔에 실행해보자 짠. Amenities가 잘 생성되었다. 참고로 저기서 Amenity.objects.create() 할 때 create는 d
직전에 했던 seed_users를 본받아 진행한다.rooms - management - commands - seed_rooms.py일단 이 상태에서 실행해보면 아래와 같은 에러가 뜬다.django_seed.exceptions.SeederException: Field r
Review의 항목들reviews - management - \_\_init\_\_.pyreviews - management - commands - \_\_init\_\_.pyreviews - management - commands - seed_reviews.py잘 된
1) views 우리가 구현하고 싶은건 메인에 들어가자마자 바로 방 리스트가 쭉 펼쳐지는 화면이다. rooms - views.py config - urls.py 127.0.0.1:8000 HttpResponse가 없단다. 근데 그 이전에 url을 계속 confi
이 모든 목록이 전부 한 페이지에 뜨게 하는건 좀 아니다. 페이지를 구분해주자.우선 첫 5개만 끊어보자.rooms - views.py - all_rooms이런 식으로 첫 페이지에서는 1~5번째, 그 다음 페이지에서는 6~10번째 순으로 차근차근 보여주게 하자.SQL에서
1) Paginator 앞서 파이썬으로 코딩했던걸 장고의 paginator라는걸 이용해서 재구성할 것이다. https://docs.djangoproject.com/en/4.0/ref/paginator/ 제법 많은 부분이 바뀐다. rooms - views.py (변경
이번엔 CBV, Class Based View 라는거로 해볼 것이다. pagination을 여러데서도 반복핧 것이기에 이를 하나로 만들어서 상속시킬 것이다. 장고가 미리 만들어둔 클라스가 많기 때문에 이것을 이용할 것이다.rooms - views.pycore의 urls
이제 목록에 떠있는 방을 클릭해서 그 방 페이지로 가는걸 구현할 것이다.templates - rooms 폴더에 detail.html을 생성한다.rooms - views.py이제 url을 등록해야하는데 core가 아니라 rooms에 urls.py를 만들도록 한다. 그리고
에어비앤비에 있는 숙소 검색창어떤 방들이 있는지 검색해보려 한다.rooms - views.pytemplates - rooms - search.htmlrooms - urls.pyurl은 127.0.0.1:800/rooms/search/ 로 한다. 세부 url이 rooms
만약 인원수를 검색한다면 그 인원과 같거나 그보다 많은 인원을 수용할 수 있는 방을 제공해줘야 한다.rooms - views.py그러하다. 잘 찾았다.잘 찾는걸 확인했으니 이걸 context로 넣어주자.room - views.pytemplates - rooms - se
Django의 Forms API라는걸 사용해볼 것이다.https://docs.djangoproject.com/en/4.0/ref/forms/api/우선 기존의 내용을 다 지운다. 그리고 새로운 forms.py를 만든다.rooms - views.pyrooms -
로그인 기능을 구현할 것이다. 1) Login 페이지 연결 users 앱 내에 구현하도록 하자. users - urls.py 기본 View를 사용시에는 get과 post 두 가지만 가지는데 기본적으로 모든 HTTP 메소드들을 가지게 되는 것이다. users - vie
1) Sign Up Form 생성 회원가입 기능을 구현해보자. users - views.py users - urls.py templates - partials - nav.html 메인에 sign up이 떴다. Sign Up 페이지는 아직 안열림. templat