Case insensitive urls for Django?

前端 未结 5 1836
野的像风
野的像风 2020-12-04 22:14

It seems by default django\'s url solver perform case sensitive search for solving url and differentiate between \'/Login\' and \'login\'. My url patterns are as follows.

5条回答
  •  囚心锁ツ
    2020-12-04 22:34

    In Django 2.1, it appears that (?i) placed anywhere inside the URL regex will cause it to ignore case. However, reverse() fails unless the (?i) follows the $ at the end of the regex.

    from django.urls import re_path, reverse
    from django.shortcuts import render
    
    def home_page(request):
        foo = reverse('home_page')
        return render(request, 'home.html')
    
    urlpatterns = [ re_path(r'home/(?i)', home_page, name='home_page') ]
    

    raises

    ValueError: Non-reversible reg-exp portion: '(?i'
    

    but runs cleanly with the regex r'home/$(?i)'.

提交回复
热议问题