250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- MySQL
- 클라우드
- linux명령어
- todolist
- 나만의주식5법칙
- 다산의마지막습관
- Django
- 중용
- db
- UPSERT
- 성선택
- Git
- 독후감
- 옹졸함
- git 업로드
- 일일투자금액
- OpenCV
- 꼭읽어봐야할책
- Face Detection
- php
- 서울로가자
- 헬레나크로닌
- Python
- 공작과개미
- 비밀번호변경
- 훌륭한모국어
- delete
- 네인생우습지않다
- ChatGPT
- 지방사람이보는서울사람
Archives
- Today
- Total
Terry Very Good
<django RestaurantShare PJT> 맛집 상세정보 삭제하기(식당정보 DB DELETE) 본문
프로그래밍/(WEB) DJANGO
<django RestaurantShare PJT> 맛집 상세정보 삭제하기(식당정보 DB DELETE)
테리베리 2020. 12. 27. 20:06728x90
반응형
1. 요약설명
<<쪽의 그림은 맛집 상세정보를 출력하는 페이지(restaurantDetail.html)이다.
>>쪽의 그림은 맛집 상세정보를 삭제할 수 있는 기능이 추가된 페이지이다.
삭제버튼을 누를 시, Data가 삭제되고, 초기화면(index)로 돌아가는 '삭제기능'을 추가해보자.
2. DB 정보
우선 DB는 아래 models.py를 참고해보면,
from django.db import models
# Create your models here.
class Category(models.Model):
category_name = models.CharField(max_length = 100)
class Restaurant(models.Model):
category = models.ForeignKey(Category, on_delete=models.SET_DEFAULT, default=3)
restaurant_name = models.CharField(max_length = 100)
restaurant_link = models.CharField(max_length = 500)
restaurant_content = models.TextField()
restaurant_keyword = models.CharField(max_length = 50)
1. Category 테이블 : category_name
2. Restaurant 테이블: category(Category 테이블 참조),
restaurant_name,
restaurant_link,
restaurant_content,
restaurant_keyword
로 되어있다.
3. 수행
(1). restaurantDetail.html
<a href ="/" class="resAddBtn btn btn-info" role="button">홈으로</a>
<a href ="./updatePage/{{restaurant.id}}" class="resAddBtn btn btn-danger" role="button"> 수정하기</a>
<form action="./delete" method="POST">{% csrf_token %}
<input type="hidden" id="resId" name="resId" value="{{restaurant.id}}"/>
<input type="submit" class="resAddBtn btn btn-danger" value="삭제하기"/>
</form>
- 삭제할 때 사용할 히든인풋만들기(resId)
- [삭제하기] 버튼 생성
(2). urls.py
from django.urls import path, include
from . import views
urlpatterns = [
path('',views.index, name='index'),
path('restaurantDetail/delete', views.Delete_restaurant, name='resDelete'),
path('restaurantDetail/<str:res_id>', views.restaurantDetail, name='resDetailPage'),
path('restaurantDetail/updatePage/update', views.Update_restaurant, name='resUpdate'),
path('restaurantDetail/updatePage/<str:res_id>', views.restaurantUpdate, name='resUpdatePage'),
path('restaurantCreate/', views.restaurantCreate, name='resCreatePage'),
path('restaurantCreate/create', views.Create_restaurant, name='resCreate'),
path('categoryCreate/', views.categoryCreate, name='cateCreatePage'),
path('categoryCreate/create', views.Create_category, name='cateCreate'),
path('categoryCreate/delete', views.Delete_category, name='cateDelete'),
]
- restaurantDetail/delete path 추가
(3). views.py
def Delete_restaurant(request):
res_id = request.POST['resId']
restaurant = Restaurant.objects.get(id= res_id)
restaurant.delete()
return HttpResponseRedirect(reverse('index'))
- Delete_restaurant 추가(DB삭제)
- 삭제 후 return index
끝
728x90
반응형
'프로그래밍 > (WEB) DJANGO' 카테고리의 다른 글
<django RestaurantShare PJT> 맛집 상세정보 수정하기( 식당정보 DB UPDATE, 동적할당했던 URL로 돌아가기) (0) | 2020.12.27 |
---|---|
<django RestaurantShare PJT> 맛집 상세정보 출력 (DB값에 따른 url 동적처리 방법) (0) | 2020.12.21 |
[django RestaurantShare Project 1] URL & Templates Setting (0) | 2020.12.18 |
[Django Todolist 프로젝트 2] 완료한 항목 보이지 않게 하는 법(DB 삭제 없이) (0) | 2020.12.17 |
[Django Todolist 프로젝트 1] 가상환경, Git 세팅부터 구현까지(CRUD) (0) | 2020.12.16 |