我需要在哪里传递请求?

时间:2020-09-30 10:48:38

标签: javascript python ajax

当我单击按钮时,我试图激活一个将数据传输到模板并打开它的功能。 这是按钮点击功能:

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 ()函数中传递请求,或如何以不同方式正确执行请求?

1 个答案:

答案 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