gpt4 book ai didi

python - 尝试将Django中urls.py中的字符串转换为所有小写字母?

转载 作者:行者123 更新时间:2023-12-01 06:33:12 25 4
gpt4 key购买 nike

本质上,我正在尝试将example.com/products/productName/形式的动态网址转换为productName均为小写的网址。在urls.py中,我有

    path('products/<str:productName>/', product_detail_view)


...这应该重定向到产品详细信息页面,并使用小写形式的productName(无论可能是什么)。

我尝试将.lower()附加到'products //'上,这将字段productName转换为productname,而在model.py中无法识别该字段。

然后我尝试了“产品//”,这也根本不起作用?有人有什么建议吗?

最佳答案

您可以创建一个基本的RedirectView,该目录将重定向到详细信息视图,产品名称为小写

from django.views.generic.base import RedirectView

class ProductLowerCaseRedirectView(RedirectView):

permanent = True
query_string = True
pattern_name = 'product_detail_view'

def get_redirect_url(self, *args, **kwargs):
kwargs['productName'] = kwargs['productName'].lower()
return super().get_redirect_url(*args, **kwargs)


现在,您可以利用Django依次遍历您的网址这一事实,从而发挥您的优势。您创建一个仅接受小写产品名称的模式,这是您的主视图,您还具有重定向视图,该视图接受同一路径上的所有请求,但不接受小写

re_path(r'^products/(?P<productName>[a-z]*)/$', product_detail_view, name='product_detail_view')    
path('products/<str:productName>/', ProductLowerCaseRedirectView.as_view())

关于python - 尝试将Django中urls.py中的字符串转换为所有小写字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59797040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com