날씨와 카테고리 매핑 저장
맑음 날씨에는 관광명소, 카페, 쇼핑 등의 카테고리를 매핑하고,
비 날씨에는 문화시설, 카페를 매핑하는 식으로 설정해준다.
날씨와 카테고리 매핑 데이터를 저장하기 위해서는 WeatherCategoryMapping
모델에 데이터를 넣어야 한다.
장고의 데이터 마이그레이션을 통해 초기 데이터 삽입 : migrations 파일에 초기 데이터를 추가하여 자동으로 데이터 삽입
장고 관리 명령어를 통해 초기 데이터 삽입 : manage.py 명령어를 사용하여 데이터 삽입
두가지 방법으로 초기 데이터를 넣을 수 있으며, 두번째 방법으로 진행
1. WeatherCategoryMapping 모델에 초기 데이터 삽입
날씨와 카테고리 간의 매핑 저장
class WeatherCategoryMapping(models.Model):
weather = models.CharField(max_length=50)
category = models.CharField(max_length=50)
2. 장고의 shell을 사용하여 데이터 삽입 수행
터미널에서 장고 프로젝트 디렉토리로 이동한 후 장고 쉘 실행
python manage.py shell
초기 데이터 삽입
from maps.models import WeatherCategoryMapping
mappings = [
{"weather": "맑음", "category": "관광명소"},
{"weather": "맑음", "category": "쇼핑"},
{"weather": "맑음", "category": "문화시설"},
{"weather": "맑음", "category": "음식점"},
{"weather": "맑음", "category": "카페"},
{"weather": "흐림", "category": "문화시설"},
{"weather": "흐림", "category": "음식점"},
{"weather": "흐림", "category": "카페"},
{"weather": "흐림", "category": "쇼핑"},
{"weather": "비", "category": "카페"},
{"weather": "비", "category": "문화시설"},
{"weather": "비", "category": "음식점"},
{"weather": "비", "category": "쇼핑"},
{"weather": "비", "category": "관광명소"},
{"weather": "눈", "category": "카페"},
{"weather": "눈", "category": "문화시설"},
{"weather": "눈", "category": "음식점"},
{"weather": "눈", "category": "쇼핑"},
{"weather": "눈", "category": "관광명소"},
{"weather": "습함", "category": "카페"},
{"weather": "습함", "category": "쇼핑"},
{"weather": "습함", "category": "음식점"},
{"weather": "습함", "category": "문화시설"},
{"weather": "미세먼지 좋음", "category": "관광명소"},
{"weather": "미세먼지 좋음", "category": "쇼핑"},
{"weather": "미세먼지 좋음", "category": "문화시설"},
{"weather": "미세먼지 좋음", "category": "음식점"},
{"weather": "미세먼지 좋음", "category": "카페"},
{"weather": "미세먼지 나쁨", "category": "카페"},
{"weather": "미세먼지 나쁨", "category": "쇼핑"},
{"weather": "미세먼지 나쁨", "category": "문화시설"},
{"weather": "미세먼지 나쁨", "category": "음식점"},
]
for mapping in mappings:
WeatherCategoryMapping.objects.create(**mapping)
3. 삽입이 완료된 후 데이터가 저장되었는지 확인하려면 쉘에서 아래의 코드 실행
from maps.models import WeatherCategoryMapping
for mapping in WeatherCategoryMapping.objects.all():
print(mapping)
이제 모델에 저장된 데이터가 views.py의 검색 로직에서 사용되어 사용자가 선택한 날씨 조건에 따라 자동으로 관련된 카테고리가 필터링되도록 할 수 있다.