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
- 파이썬
- AWS
- 테라폼 기본 문법
- 빅오노테이션
- terraform 문법
- 도커
- terraform
- Shell
- docker-compose
- docker
- iterm2 shortcuts
- iterm2 단축키
- sftp란
- minikube mac 설치
- zsh
- server
- 테라폼 문법
- test
- Django
- linux
- minikube 설치 방법
- python
- zshrc
- 도커컴포즈
- DynamoDB
- nosql
- customize
- 컨테이너
- BIG-O NOTATION
- Bash
Archives
- Today
- Total
sklass의 s-class 프로그래밍 blog
[Django] Signals 본문
django에서 모델이 delete되거나 save 되기전에 다른일을 처리하고 싶은 경우가 있습니다.
이런경우 django의 signals를 사용하면 됩니다.
사용법은 간단합니다. Project라는 모델이 지워지거나 저장될때 signal을 사용하고 싶다면 우선 Project 어플리케이션 폴더로 이동 후에, 그 안에 signals.py라는 파일을 만들 아래와 같이 경우에 맞춰서 코드해주면됩니다.
delete 하기전에 무언가를 하고싶은 경우,
from django.db.models.signals import pre_delete
from django.dispatch.dispatcher import receiver
from .models import Project
@receiver(pre_delete, sender=Project)
def project_before_delete(instance, **kwargs):
...
위에서 sender=Project는, Project라는 Model이 지워질때만, 해당 receiver가 작동하게끔하는것입니다.
save 하기전에 무언가를 하고싶은 경우,
from django.db.models.signals import pre_save
from django.dispatch import receiver
from myapp.models import Project
@receiver(pre_save, sender=Project)
def my_handler(sender, **kwargs):
...
여기서 delete이나 save는 script내에서 delete()이나 save()를 콜할때도 포함하지만 django admin site에서 save나 delete 버튼을 누를때에도 포합합니다.
'django' 카테고리의 다른 글
[django] drf의 request.data.get() (0) | 2021.10.22 |
---|---|
[Django] unittest @tag (0) | 2021.09.11 |
[Django] test 명령어 argument customize (0) | 2021.09.11 |
[Django] manage.py 명령어 Customize (0) | 2021.09.10 |
[Django] select_for_update()를 활용한 동시성 제어 (0) | 2021.08.24 |