설정 파일에서 프랑스어로 django 웹 사이트를 설정했습니다.Django 날짜 변환 템플릿 및 URLconf
내 템플릿에 다음 항목이 있습니다. <a href="/{{ year }}/{{ month|date:"b" }}/">{{ month|date:"F" }}</a>
. 내 URLconf에서
, 나는 항목 url(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{1,2})/$',MonthArchivePostView.as_view())
문제는 템플릿에서 생성 된 날짜 (예 : 월, 나는이 <a href="/2012/fév/">Février</a>
있어) 프랑스어 때문이다 가지고 있지만 URL은 영어 기대 버전 (/2012/feb/
).
영어 또는 프랑스어로 URL에 날짜를 쓰는 것에 신경 쓰지 않아도 템플릿을 사용하여 생성 된 URL을 URLconf 파일에 포함시켜야합니다.
는
업데이트 빠른 수정 -하지 - 정말-A-솔루션 주셔서 감사합니다 : 그래서 urls.py 대신 /feb/
의 /02/
을 대신 b
의 모든 곳에서 m
형식을 사용
url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/$',
MonthArchivePostView.as_view()
),
와 일반 뷰에서
class MonthArchivePostView(dates.MonthArchiveView):
model = Post
month_format = '%m'
date_field = 'publish'
고맙습니다.하지만 어떻게해야할지 모르겠습니다. 제네릭 클래스 (cf 업데이트)를 사용하기 때문에 실제로 월별 아카이브에 대한 모델이 없습니다. 나는 모델 포스트를 사용한다. 여기서 [get_absolute_url] 함수를 설명했다. [here] (https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.permalink) –
generic 클래스 view [returns] (https://docs.djangoproject.com/en/dev/ref/class-based-views/#django.views.generic.dates.YearArchiveView)는 DateQuerySet과 연도, 모델이 없습니다. 더 쉽고 빠르지 만 일반 클래스를 사용하고 있었지만 더 이상 확실하지 않습니다. 또한 get_absolute_url [must] (https://docs.djangoproject.com/ko/1.3/ref/models/instances/#django.db.models.Model.get_absolute_url)에는 아스키 문자 만 있으므로'/ 2012/Feb/'/ 2012/fév /'가 아닙니다. 아니면 '/ 2012/f % C3 % A9v /'하지만 그다지 좋지는 않습니다 ... –
URL에 슬러그를 사용하고 비 ASCII 문자는 사용하지 않는 것이 좋습니다. 템플릿 태그 [slugify] (https://docs.djangoproject.com/en/1.3/ref/templates/builtins/#slugify)는 앞서 언급 한'django.template.defaultfilters'에서'slugify'를 가져 오는 모델 정의에서도 사용할 수 있습니다 [여기] (http://stackoverflow.com/a/837835/302076) – dolma33