반응형
페이스북 내용을 공유합니다.
Django Slug 깨짐현상
1) model field 에 allow_unicode = True로 했지만, slug를 url로 가져올때 url 에러가 나오는데 해결 방법은 아래 3가지와 같습니다.
Django 2.0 버전 올린 거 수정사항 하나 올립니다.
1. 문제점: blog 앱에서 post(글) 등록시, slug 에 한글이 들어가면, urls.py 모듈에서 에러 발생함.
2. 고려사항: models.py 에서 slug=SlugField(allow_unicode=True) 로 한글이 입력 가능한 상태임.
3 해결 방안 - 3가지
(1) path('post/<slug>/', ...) 또는 <str:slug> 으로 변경함.
(2) re_path(r'^post/(?P<slug>[-\w]+)/$', ...) 으로 변경함.
(3) path('post/<myslug:slug>/', ...) 으로 변경함.
4. 위 (3)번은 myslug 라는 path converter 를 아래처럼 정의해야 함.
-------------- blog/converters.py ---------------
from django.urls.converters import StringConverter
class HangulSlugConverter(StringConverter):
regex = '[-\w]+'
-------------- blog/urls.py ---------------------
from django.urls import register_converter
from . import converters
register_converter(converters.HangulSlugConverter, 'myslug')
(이하 동일함)
즐거운 코딩하세요
반응형
'프로그래밍 > Django개발(MAC OS)' 카테고리의 다른 글
[Django] Foreign Key Field 관련 내용 정리 (0) | 2019.12.06 |
---|---|
Django Model 자주 사용하는 메서드 (0) | 2019.11.28 |
Django_ get_queryset()과 queryset에 대한 차이 정리 (0) | 2019.11.26 |
Django_ values(), values_list(), flat 옵션 (0) | 2019.11.26 |
Django 소셜 로그인 구현 - Naver (0) | 2019.11.22 |