Category: Türkçe

Date:

Talep ettiğiniz URLler 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 URLlerin 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.


Share: FacebookGoogle+Email


comments powered by Disqus