【问题标题】:How to put limitation on url patterns in Django 2如何在 Django 2 中限制 url 模式
【发布时间】:2018-05-29 07:27:39
【问题描述】:

Django 1.11 使用正则表达式来检查适当的 url。例如

url(r'^(?P<year>[0-9]{4})/$', views.abc),

在这里我可以检查我的年份是 4 位数。

引入的新方式是这样的

path('<int:year>/', views.abc),

是否有使用path() 的默认方式来使用限制?

【问题讨论】:

    标签: python regex url-routing django-2.0


    【解决方案1】:

    直接从Django Docs提升

    您可以定义您的自定义转换器:

    class FourDigitYearConverter:
        regex = '[0-9]{4}'
    
        def to_python(self, value):
            return int(value)
    
        def to_url(self, value):
            return '%04d' % value
    

    然后:

    from django.urls import register_converter, path
    
    from . import converters, views
    
    register_converter(converters.FourDigitYearConverter, 'yyyy')
    
    urlpatterns = [
        path('articles/2003/', views.special_case_2003),
        path('articles/<yyyy:year>/', views.year_archive),
        ...
    ]
    

    【讨论】:

      猜你喜欢
      • 2018-10-31
      • 2012-01-13
      • 2018-05-19
      • 2010-11-10
      • 1970-01-01
      • 2019-02-11
      • 2018-10-05
      • 2013-10-23
      • 2021-03-12
      相关资源
      最近更新 更多