0

我必须在每个 Django 请求中传递两个参数才能在我的 Django 应用程序的每个视图上调用的装饰器中使用它们。

目前,我正在使用以下方式传递参数。

class RoleTaskForm(forms.Form):
    task_id = forms.CharField(max_length=256, required=False)
    action = forms.CharField(max_length=10, required=False)

在 html 文档中使用以下表单

<form name="role_task_form" method="get">
        <input type="hidden" name="task_id">
        <input type="hidden" name="operation">
</form>

跟随JS函数来操作表单值,即相应地改变表单的动作并设置参数值。

function editProfile() {
    let form = document.role_task_form;
    form.task_id.value = "ProfileManagement";
    form.operation.value = 'edit';
    form.action = '/myschoolspace/edit-profile';
    form.submit();
}

并将上面的 JS 函数调用到我们必须导航到视图的 HTML 页面的锚标记。

我正在使用这种方法将参数传递给每个请求,但是当需要在每个请求中传递参数时,我觉得这不是最佳实践。

请向我推荐最好的方法。

4

1 回答 1

0

您可以使用一组常见的装饰器并在多个地方使用它,您可以定义装饰器的列表或元组并使用它而不是多次调用 method_decorator()。这两个类是等价的:

decorators = [never_cache, login_required]
@method_decorator(decorators, name='dispatch')

文档

于 2020-07-18T08:01:44.987 回答