Linux
Django URL’lerinde Unicode Karakter Desteği
25th Tem 2009 | Sınıfı: Linux 0

Talep ettiğiniz URL’ler içerisinde unicode bir karakter kullanmaya kalktığınızda muhtemelen bir URL eşleştirme hatasıyla karşılaşırsınız. Çünkü urls.py dosyası öntanımlı olarak URL’lerin ASCII olmasını bekler. Eğer [a-z] veya \w örüntüsü belirtirseniz ö gibi unicode karakterler bu düzenli ifadeyle eşleşmeyecektir. Bu sebeple öncelikle eşleşmenin unicode olacağını (r’ yerine (u’ yazarak belirtmeli, ek olarak da kullanacağınız tüm unicode karakterleri aralığa yazmalısınız. Aşağıda örnek bir urls.py dosyası görebilirsiniz:

urlpatterns = patterns('search.pathsearch.views',
    (u'^$', 'index'),
    (u'^(?P<version>[-0-9A-Za-z]+)/$', 'index'),
    (u'^(?P<version>[-0-9A-Za-z]+)/package/(?P<package_name>[-_.0-9A-Za-zıİğĞüÜşŞöÖçÇ ]+)/$', 'list_package_contents'),
)

Bu çözüm yerine şurada görebileceğiniz gibi tüm karakterleri kabul et deyip sonra filtreleme işine gidebilirsiniz. Ancak bu yöntemi kullanırken dikkatli olmalı, filtrelemeyi iyi yapmalısınız. Diğer bir husus ise eski Python ve Django sürümlerinde sorun çıkabildiği.

Etiketler: ,
Leave a Reply

IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)

What is 15 + 2 ?
Please leave these two fields as-is: