# on_delete
2023.03.02.THU
[ Pre-Project ] 우리는 이번에는 그냥 넘겨버렸지만,, 원래는 신경써야할 modifiedAt 시간의 변화,, ㅋㅋ 좋아요를 누를 때 게시물의 수정 시간이 바뀌면 안 된다. https://itsowavy.oopy.io/spring/lastmodifieddate-annotation Cannot delete or update a parent row: a foreign key constraint fails 에러 연관 관계 때문에 delete 쿼리가 먹히지를 않았다. 좋아요나 댓글이 있는 답변이 (외래키로

[Django] 비 SPA 방식으로 장고 Forms/Views를 적극 활용한 인스타그램 St 만들기#6_instagram 앱 생성과 포스팅 쓰기 구현
1) > instagra의 urls.py에 있는 각각의 path들이 prefix없이 작동할 수 있도록 2) > 외래키에서는 모델의 참조가 되는 클래스와 on_delete 옵션을 지정해줘야 한다. 3) > instagram 앱에서 모델을 만들고 makemigations까지 실행했으나 migrate에서 오류가 났다. accounts 앱에 적용된 0003 파일과 적용 안된 0003 파일이 있었는데, 적용 안된 0003을 지우고 정상적으로 실행됐다. 4) > urls.py에서 app_name을 지정해줬고 path name도 붙여줄 수 있다. "새 포스팅 쓰기"를 클릭 시 urls.py에 지정돼 있는 /post/new로 넘어간다. 5) > request는 valid하더라도 필수 항목인 author가 채워지지 않고 commit=True로 넘어갈 경우 IntegrityError가 발생할 것이므로 post.author를 저장하고 post.save()를 진행한다. 6) > 포스팅

SwiftUI: onDelete()
onDelete() 🔖 참고한 문서 🙌 How to create views in a loop using ForEach 🙌 Deleting items using onDelete() SwiftUI 실습을 하던 중, 별 것 입력하지 않았는데 스와이프를 통해 항목이 삭제되는 것을 발견했다! onDelete()에 대해서 알아보자. 그리고 그 전에, 아래의 코드를 이해하기 위해서 먼저 이해해야 하는, id: \.self 와 **
TypeORM Relation Options
onDelete 삭제 시 데이터베이스에서 종속적으로 일어날 액션 delete types ( Ex - 사진을 가지고 있는 주인을 삭제하면) CASCADE: 연쇄적으로 삭제 ex) 사진들도 삭제 됨 SET NULL: null값으로 바꿈 ex) 사진의 주인 부분의 값은 null이 됨 nullable null값이 가능함 cascade onUpdate deferrable primary lazy eager persistence
.png)
[Django] on_delete 옵션 잘 쓰기
멘토님 ondelete 옵션에 전부 SETNULL 이 들어가있는데, 참조대상이 delete 될 경우 데이터는 전부 유지하려고 의도하신걸까요? >승연 데이터 공간 확보가 중요했던 옛날에는 * ON DELETE CASCADE를 썼지만 데이터 보존이 더 중요해진 지금은 *ON DELETE SET_NULL을 쓴다고 배워서 그렇게 설정했습니다! >멘토님 말씀하신 부분 정확합니다! 하지만 지금 모델에서는 FK 가 NULL인 부분을 빼고 쿼리 날려서 가져올 수 있는 방법이 없습니다. 보통 이럴때는 deleted_at 이라는 컬럼을 주고 해당 필드에 시간이 존재하면 delete 된 정보로 생각을하고 로직에서 필터링을 해가지고 오는 방법이 있습니다! > 승연 아하 그러면 foreign key로 연결된 모든 모델 (뿐만 아니라 웬만하면 모든 모델에 대하여?) deletedat이라는 필드를 만들어주고 models.DateTimeField(autonow_ad

TIL #39 Django - ForeignKey, on_delete 속성
django에서 table들을 연결 할 때 ForeignKeyField을 사용 한다. 이 때 on_delet 속성을 통해 참조하고 있는 값이 삭제 되었을 때, 해당 row을 같이 삭제 할지, 또는 그대로 유지 할지 등을 정할 수 있다. CASCAD: 참조하고 있는 값이 삭제 되면 해당 row를 전체 삭제 SET_NULL: 참조하고 있는 값이 삭제 되면 foreign key 값을 null로 바꾼다. PROTECT: 참조하고 있는 값이 삭제 될 때 삭제 되지 못하게 ProtectError 발생. SET_DEFAULT: 참조하고 있는 값이 삭제 되면 foreign key 값은 미리 설정해 둔 default 값으로 바뀐다. SET(): SET의 ()안에 함수를 넣고 그 함수에 의해 foreign key 값이 바뀐다. DO_NOTHONG: 참조하고 있는 값이 삭제 되도 아무것도 하지 않는다.