Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Django:用整数变量替换url片段_Javascript_Python_Django - Fatal编程技术网

Javascript Django:用整数变量替换url片段

Javascript Django:用整数变量替换url片段,javascript,python,django,Javascript,Python,Django,我试图用变量替换url调用,如下所示: href="{% url 'educators:pay_patient' 9 %}".replace(/9/, x) 而值x只是一个模型的主键,即x=1,2,3,等等 我的问题是,似乎x的位数和它要替换的位数必须匹配。例如,x=1适用于9,但不适用于90 如果x=1 href="{% url 'educators:pay_patient' 90 %}".replace(/90/, x) 产生一个404错误 Request URL: http://

我试图用变量替换url调用,如下所示:

href="{% url 'educators:pay_patient' 9 %}".replace(/9/, x)
而值x只是一个模型的主键,即x=1,2,3,等等

我的问题是,似乎x的位数和它要替换的位数必须匹配。例如,x=1适用于9,但不适用于90

如果x=1

href="{% url 'educators:pay_patient' 90 %}".replace(/90/, x)
产生一个404错误

Request URL:    http://127.0.0.1:8000/educators/study/pay/90/
我如何使这个方案对任意数量的x位数都可以推广


编辑:根据请求,与此视图匹配的我的url模式为:

path('educators/', include(([
    path('study/pay/<int:pk>/', educators.PayPatientView.as_view(), name='pay_patient')
path('educators/”,包括(([
路径('study/pay/',educators.paympatientView.as_view(),name='pay_patient')

您可以使用
replace
的回调函数根据匹配长度赋值

let href=“{%url”教育者:支付患者“9010325%”
让op=href.replace(/\d+/,函数(匹配){
返回新数组(match.length).fill(0).map((e,i)=>i+1.join(“”)
})

console.log(op)
您可以使用
replace
的回调函数根据匹配长度赋值

let href=“{%url”教育者:支付患者“9010325%”
让op=href.replace(/\d+/,函数(匹配){
返回新数组(match.length).fill(0).map((e,i)=>i+1.join(“”)
})

console.log(op)
从django url官方文档中,我们可以将变量指定为url参数,对于您的情况,这可以是

urlpatterns = [

    path('/educators/study/pay/<int:pk>/', your_view, name=your_view_name),
    ...
]
urlpatterns=[
路径('/educators/study/pay/',your_view,name=your_view_name),
...
]

在views.py中,您可以使用额外的pk变量作为参数。

从django url官方文档中,我们可以将变量指定为url参数,对于您的情况,这可以是

urlpatterns = [

    path('/educators/study/pay/<int:pk>/', your_view, name=your_view_name),
    ...
]
urlpatterns=[
路径('/educators/study/pay/',your_view,name=your_view_name),
...
]

在views.py中,您可以使用额外的pk变量作为参数。

谢谢您的回答。为了简单起见,我用x作为一个简单变量问了这个问题,但这个替换必须是这种形式,因为x实际上是一个定制的过滤器标记{{participant | get_patient_answer:occ_pk}我真的很抱歉@Ambrose,可能是我没有正确地理解您的问题。从您更新的
url
部分,我可以看出您已经正确地添加了此内容。如果我没有弄错,arg[pk]应该包含任何整数类型的变量。应该没有任何问题。在这种情况下,执行此操作
90
是一个主键或任何其他变量。感谢您的回答。为了简单起见,我将x作为一个简单变量问这个问题,但此替换必须采用此形式,因为x实际上是一个自定义筛选器标记{{参与者|获得患者(回答:occ_pk}我真的很抱歉@Ambrose,可能是我没有正确地理解你的问题。从你更新的
url
part我可以看出你已经正确地添加了这个。如果我没有弄错arg[pk]应该包含任何整数类型的变量。应该没有任何问题。在这种情况下,执行此操作
90
是一个主键或任何其他变量。感谢您的回答代码狂人。这看起来很有希望!我只是想理解它。在我的情况下,看起来匹配应该是x?console.log(op)是什么对于?@Ambrose yeah match将是
x
在您的情况下或您想命名的任何名称。console.log(op)只是为了显示输出:p感谢您的答案代码狂人。这看起来很有希望!我只是想理解它。在我的情况下,看起来匹配将是x?console.log(op)是什么对于?@Ambrose yeah match将是
x
,在您的情况下或您想命名的任何名称。console.log(op)只是显示输出:p