SNS에 존재하는 태그 기능은 같은 관심사를 공유하고, 모아보는 효과가 있다.
우리가 태그 기능을 따로 만들 수도 있지만, 장고에는 이미 관련 모듈이 존재한다.
다운받고 내가 만들고 있는 서비스에 바로 적용해보자!
우선 이번 포스팅에서는 장고 태그 모듈을 다운로드 받고, settings 에 추가해주고 migration 해주는 것만 다뤄보겠다.
실제 만들고 있는 서비스에서 이를 활용하는 방법은 다음 포스팅에서 확인하면 될 것 같다.
장고 태그모듈 다운 받기
두개를 다운 받아야한다.
pip install django-taggit
일단 위 명령어로 django-taggit 을 설치해주자.
pip install django-taggit-templatetags2
이것도 설치해준다!
settings에 추가해주기
모듈을 다운로드 받았으니, 장고의 settings 파일에 적용해주어야한다.
INSTALLED_APPS 에
'taggit.apps.TaggitAppConfig' 과 'taggit_templatetags2' 을 추가해준다.
또 그 밑에
TAGGIT_CASE_INSENSITIVE = True
TAGGIT_LIMIT = 50
위 코드를 명시해준다.
tweet 모델에 태그 적용시키기
현재 나는 tweet앱 안의 모델에 장고 태그 기능을 넣고 싶은 상황이다.
그렇기 때문에 tweet/models.py에 가서 코드를 만져보겠다.
from taggit.managers import TaggableManager
일단 코드 위에 TaggableManager 를 import 시켜줘야한다.
이 TaggableManager는 태그를 달 수 있게 도와주는 매니저이다.
class TweetModel(models.Model):
class Meta:
db_table = "tweet"
author = models.ForeignKey(UserModel, on_delete=models.CASCADE)
content = models.CharField(max_length=256)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
원래 나의 TweetModel 코드는 위와 같았다.
이제 여기에 아래와 같은 코드를 추가하여 tags 를 넣어보자.
tags = TaggableManager(blank=True)
여기서 blank=True 구문은 태그가 없어도 동작할 수 있게 한다는 의미이다.
완성된 TweetModel 은 아래와 같다.
이제 사전작업은 끝냈다.
이제 마이그레이션해주자!
python manage.py makemigrations
python manage.py migrate
위 명령어를 순서대로 쳐 모델을 데이터베이스에 적용시키면 된다.
'Archive > Develop' 카테고리의 다른 글
[ Windows Socket ] 소켓 프로그래밍/소켓 통신 예제 간단한 채팅 프로그램 (4) | 2021.09.17 |
---|---|
[ Django ] SNS 서비스에 태그 기능을 추가해보자! | django taggit 설치/사용법 (2) (2) | 2021.09.01 |
[ Spring ] @Component 를 상속하는 어노테이션 (0) | 2021.08.27 |
[ Spring ] 스프링 의존성 관리 (0) | 2021.08.27 |
[ Spring ] 스프링 컨테이너 - ApplicationContext (0) | 2021.08.27 |