ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3. [장고(Django)_맛집 공유 사이트] CRUD 구성
    장고(Django)백엔드/맛집 공유사이트 2021. 7. 7. 01:13
    728x90
    반응형

    두개의 CRUD구성이 필요하다.

     

    1. 카테고리에 대한 CRUD

    2. 맛집에 대한 CRUD(다음페이지)

     

     

    1. 카테고리에 대한 CRUD

     

     

    카테고리에 대한 모델 정의

     - 하나의 맛집이 하나의 카테고리에 속하는 방법으로 모델 구성 예정(맛집에 대한 CRUD에서 구성예정)

     - 따라서 카테고리에 대한 모델은 요소로 "카테고리 이름" 만 필요하다.

     

     

    카테고리 모델 생성

    models.py 파일 수정

     

     

    데이터베이스 설정 작업

     

     python manage.py makemigrations

     

     python manage.py migrate

     

     

     

     

     

    추가 버튼을 누르면 동작하도록 만드는 로직 구성

     

     

    url패턴 추가

    urls.py 파일 수정

     

     

     

    views.py수정(url에 맞는 함수 생성)

     

     

     

     

     

    Create_category함수에서 읽어온 카테고리 데이터를 index페이지에 뿌림

    모든 Category객체를 읽어오고 content로 넘겨준다.

     

     

     

     

    index.html수정

    for 문을 통해 전달받은 카테고리를 출력한다.

     

     

     

    결과

     

     

     

     

     

     

     

     

     

     

     

    cateCreate화면에서도 카테고리가 출력되도록 설정

    위와 마찬가지로 모든 카테고리 객체를 가져와 content로 내보낸다.

     

     

     

     

    cateCreate 화면 수정(categoryCreate.html 수정)

     

     

     

    삭제 버튼 추가

     

     

     

     

    기본그룹 카테고리는 디폴트로 한다

    - 카테고리가 무조건 1개는 있어야 하는데 모두 삭제 되면 속할 곳이 없어지므로

     

     

    디비 접속

    python manage.py dbshell

     

    select * from shareRes_category;

     

    기본그룹의 아이디는 3임을 확인

     

     

     

     

     

    categoryCreate.html 수정

    기본그룹(3)일 경우에는 삭제버튼이 존재하지 않고

    기본그룹이 아닐경우(!=3)에는 삭제버튼이 존재한다.

     

     

     

    ** Update기능은 맛집 CRUD에서 구현

     

     

     

    Delete기능 구현

    hidden type으로 설정하여 사용자에게 보이지는 않지만 category.id 값을 부여해줌으로써 삭제시 판별가능하게 한다.

    또한 form의 action에 ./delete추가한다.(버튼을 누르면 local:8000/categoryCreate/delete로 가도록)

     

     

     

     

    delete url 추가

    urls.py 파일 수정

    다른 url에도 name을 추가해준다.

     

     

     

     

     

    Delete_category 함수 생성

     

    name이 categoryId인 input태그의 값을 받아온다.

    id가 동일한 객체를 찾아서 데이터베이스에서 삭제시켜준다.

    categoryCreate페이로 redirect 시켜준다.

     

     

     

    카테고리에 대한 CRUD 완료!!

     

     

    ** 다음페이지에서 맛집에 대한 CRUD 구현

     

     

     

     

     

     

     

    728x90
    반응형
    SMALL
Designed by Tistory.