Python/Django 3

[Django] 마이그레이션을 합쳐보아용

Django에서 제공하는 squsashmigrations 을 써봐용 python manage.py squashmigrations python manage.py squashmigrations example 0003 0004 개발자가 직접 Migration을 squash 해용 1. 002(작업 이전 migration)로 migrate를 한다. python manage.py migrate myapp 002 2. 003 이후 migration 파일을 모두 지운다 3. migration을 새로 만든다 python manage.py makemigrations 4. migrate를 한다! 💡 개발자가 직접 하는 것이 기존에 참고할수 있는 이력을 남기고 불필요한 마이그레이션만 지울 수 있어서 관리에 좋아용

Python/Django 2022.12.06

Django - ManyToManyField.through_fields

Django 에서 ManyToManyField를 사용하다 보면 중간 테이블이 자동으로 만들어 지는 것이 아닌 내가 원하는 정보를 넣어서 중간 테이블을 커스텀 하려고 하는 경우가 발생한다. (필자의 경우 오늘 그랬다.) 나의 경우에는 유저와 게시물로 Like를 다대다관계로 만들었고 그 중에서 Like 발생 날짜를 테이블에 넣어주고자 했다. from django.db import models class User(models.Model): name = models.CharField(max_length=100) def __str__(self): return self.name class Post(models.Model): title = models.CharField(max_length=100) desc = mod..

Python/Django 2022.09.15

Django 모델 ForeignKeyField on_delete 종류

CASCADE : FK로 참조하는 레코드가 삭제 될 경우 해당 레코드를 삭제한다. SET_NULL : FK 필드의 값을 Null로 변경해준다. null=True가 정의되어 있어야 사용 가능하다. PROTECT : 해당 레코드가 삭제되지 않도록 보호해준다. SET_DEFAULT : FK 필드의 값을 default로 변경해준다. default=””가 정의되어 있어야 사용 가능하다. SET() : FK 필드의 값을 SET에 설정된 함수를 통해 원하는 값으로 변경할 수 있다. DO_NOTHING : 아무런 동작을 하지 않는다. 참조 관계의 무결성이 손상될 수 있기 때문에 권장하지 않는다.

Python/Django 2022.06.13