当我单击按钮时,我试图激活一个将数据传输到模板并打开它的功能。 这是按钮点击功能:
function openForm () {
const amount = select.value;
$ .ajax ({
url: '/ create_order /',
type: 'get',
data: {'amount': amount},
dataType: "json",
xhrFields: {withCredentials: true},
success: function (data) {
if (data ['content']) {
$ ('body'). append (data ['content']);
console.log (data ['content'])
}
},
});
}
urls.py
url (r '^ create_order /', CreateOrder),
views.py
def CreateOrder (amount, request):
count = amount.GET.dict ()
content = mark_safe (render_to_string (
'form.html',
{
'amount': count ['amount'],
},
request))
问题在request参数中。我在最后一行中需要它,因此需要将其传递给CreateOrder函数。但这是错误发生的方式
TypeError at / create_order / ↵CreateOrder () missing 1 required positional argument: 'request'
告诉我如何在openForm ()
函数中传递请求,或如何以不同方式正确执行请求?
答案 0 :(得分:0)
问题出在urls.py
occurrences
这将调用url (r '^ create_order /', CreateOrder),
代替第一个参数CreateOrder (amount, request):
发出的amount
请求(没有任何数字)
您需要将 urls.py 更改为在 /
之后有一个额外的参数request
amount
然后这将调用您的函数分别正确地分别作为参数from django.urls import path
path(r '^ create_order /<int:amount>', CreateOrder), #takes a number after the slash
和amount
传递。
EDIT :第一个参数必须为request
而不是request
,因此您必须将其更改为
amount