首页 > 解决方案 > 如何在 django 2 中将 url 中的 # 作为参数传递

问题描述

我正在尝试传递代码“Req-2019#000001”Django URL。我想在 URL 中传递此代码以及普通字符串和数字作为参数。

path('generateBomForSingleProduct/<requisition_no>/' , views.generateBomForSingleProduct, name='generateBomForSingleProduct'),

它工作正常,但问题是它在#之前添加了额外的/

我的网址现在是这个

http://127.0.0.1:8000/production/generateBomForSingleProduct/Req-2019/#000001

但我想喜欢这个

http://127.0.0.1:8000/production/generateBomForSingleProduct/Req-2019#000001

我的“#”之前没有额外的“/ ”

标签: djangopython-3.xdjango-urlsdjango-2.0

解决方案


符号后面的 URL 部分通常不会在页面请求中发送到服务器。因此,不可能将 URL 设置为# /production/generateBomForSingleProduct/Req-2019#000001


解决方法

只需将 url 修改为/production/generateBomForSingleProduct/Req-2019/000001,因此您还需要修改视图

# views.py
def generateBomForSingleProduct(request, part_1, part_2):
    unique_id = "{}#{}".format(part_1, part_2)
    # use the "unique_id"
    ...
#urls.py
urlpatterns = [
    ...,
    path('foo/<part_1>/<part_2>/', generateBomForSingleProduct, name="some-name"),
    ...

]

推荐阅读