Django 3.0中不区分大小写的URL?

jeremy_lord

有没有办法使用Django 2.0及更高版本的语法来区分大小写的URL?

例如

path('profile/<str:username>/add/',views.AddFriendRedirect.as_view(),name='add_friend'),

如果我这样做了profile/USERNAME,那么当用户名全为小写时,如何使它不区分大小写?因此,即使uSErnAmE也有效

我知道旧url语法有问题和答案,但是我想知道新path语法是否可能

AKS

有没有办法使用Django 2.0及更高版本的语法来区分大小写的URL?

如果完整网址不区分大小写,那么除了链接的SO post中的答案,我看不到其他任何方法但是我从OP那里得到的是,只有用户名部分不区分大小写。如果我们使用正则表达式遵循该解决方案,则(?i)该URL也将有效PrOFile/UsERname/AdD

但是看起来OP只希望用户名比较不区分大小写。使用str转换器,无论在url中传递什么,都将按原样传递给视图。因此,从真正意义上讲,它已经不区分大小写。这里建议的方法应该是在视图中username__iexact用来吸引用户。

但是,我们希望传递给视图的用户名值与视图所需的格式相同(例如小写),我们可以为此注册一个自定义路径转换器。

因为OP最初使用字符串转换器,所以我们可以扩展它并重写to_python以将值转换为小写。我在这里使用小写字母,因为在OP中提到用户名是小写字母。

class IStringConverter(StringConverter):

    def to_python(self, value):
        return value.lower()

# once done, register it as:
register_converter(IStringConverter, 'istr')

# and use it as:
path('profile/<istr:username>/add/',views.AddFriendRedirect.as_view(),name='add_friend'),

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 django for mysql 中不区分大小写的搜索

在 Django 3 中使用类基视图实现不区分大小写的用户名和电子邮件

在带有Postgresql 9.6的Django中,如何区分大小写和不区分重音?

Django模型-不区分大小写的查询/过滤

Django Model.objects.get(...) 不区分大小写

Django不区分大小写的“独特”查询

Django不区分大小写的登录名,大小写混合的用户名

Django中不区分大小写的唯一模型字段?

Django注册表单中不区分大小写的用户名

不区分大小写的身份验证CakePHP 3

为什么 Django 模板加载器在生产中区分大小写,但在开发中不区分大小写

字符串数组swift 3中不区分大小写的匹配搜索

在AS3中搜索数组以区分大小写的字母

Django区分大小写条目

Django的区分大小写的网址?

Django区分大小写的搜索

如何让Django对MySql 5.7 db运行不区分大小写的查询?

Django模型:Meta:如何使默认排序不区分大小写

Django(DRF):如何进行不区分大小写的排序

Django ORM __in 但不是精确的,包含不区分大小写的?

django-orm 不区分大小写的分组方式

Django的“精确”字段查找是否执行不区分大小写的搜索?

如何使自定义模板过滤器不区分大小写?(Django 2.1)

Django QuerySet.union()-或QuerySet.raw()实现不区分大小写的Mutli-Search

如何处理cakephp 3的翻译方法以使其不区分大小写?

在Django登录表单中从电子邮件中删除区分大小写

在django_filters中搜索部分匹配且不区分大小写

使用Django在Postgres ArrayField上区分大小写的搜索

Cakephp 3区分大小写的查询