나는이 문제에 갇혀 비트하니 정의 :장고는 slugify - 독일어 움라우트
우리 모두가 알고는, 장고는 Träume von Bücher
에서 traume-von-bucher
을 만드는 slugify
템플릿 태그가 있습니다.
그러나 구문적으로 Träume
은 올바른 독일어 단어가 될 Traeume
이되어야합니다.
내 맞춤 태그를 작성하여 Ä
이 Ae
으로 슬라브되도록하려면 어떻게해야합니까?
나는이 문제에 갇혀 비트하니 정의 :장고는 slugify - 독일어 움라우트
우리 모두가 알고는, 장고는 Träume von Bücher
에서 traume-von-bucher
을 만드는 slugify
템플릿 태그가 있습니다.
그러나 구문적으로 Träume
은 올바른 독일어 단어가 될 Traeume
이되어야합니다.
내 맞춤 태그를 작성하여 Ä
이 Ae
으로 슬라브되도록하려면 어떻게해야합니까?
from django import template
from django.template.defaultfilters import stringfilter
from django.utils.text import slugify
register = template.Library()
@register.filter
@stringfilter
def germanslugify(value):
replacements = [(u'ä', u'ae')]
for (s, r) in replacements:
value = value.replace(s, r)
return slugify(value)
그냥 답변에 추가하려면 beerbajay.
내가 전체 응용 프로그램 의 기본 slugify 변경을 원 바로 slugify 전화를 수정/서브 클래스 모두를 포크 할 필요없이 (기본 구현은 노르웨이 문자 'O'와 'æ'를 떼어 내고).그래서 나는 그것을 안으로 monkeypatch하기로 결정했다. 사용자 정의 slugify가 beerbajay 예제와 같이 구현되고 원래의 slugify를 호출하는 것만 큼 그렇게하는 것이 안전해야한다. 출력에 대한 가정이 깨지지 않도록하십시오.
여기 내가이 monkeypatching 코드를 포함하는 응용 프로그램을 작성 (장고 1.7에서 테스트하지만 아마 너무 이전 버전에서 작동)
것이 한 방법이 예에서는 monkeys
을했다. 그것은 다른 모든 전에 앱을 실행할 수 있도록 설치된 앱에 먼저 추가 :
import django.template.defaultfilters
from where.you.defined.it import custom_slugify
#print "MONKEY PATCHING NOW!"
#Uncomment the above to verify that this code actually called
django.template.defaultfilters.slugify = custom_slugify
만큼 모든 응용 프로그램이 django.template를 사용
INSTALLED_APPS = (
'monkeys', # The monkey patches app
#... all the other apps below here
을 monkeys/__init__.py
파일에서하면이 코드를 추가 .defaultfilters.slugify 이것이 작동해야하는 슬러그를 만드십시오.
당신은 또한 자신의 쓸 필요가 없습니다 유니 코드 - slugify를 사용할 수 있습니다. https://github.com/mozilla/unicode-sugify –
나는 그것을 찾았습니다 : https://docs.djangoproject.com/en/1.4/howto/custom-template-tags/ – doniyor
'slugify'는 실제로는 필터가 아닌 태그입니다. 따라서 적절한 움푹 들어간 부분을 대체 할 필요가 있다면 – twil