【发布时间】:2021-02-04 05:15:37
【问题描述】:
我需要向视图发送一个 JavaScript 变量,并基于该变量打开一个新页面。我已经使用 ajax 发送了变量,它运行良好,但是当我调用 URL 以根据发送的变量打开页面时,变量获取 None 值。 这是我的模板:
<a onclick="click(this.id)" id="author[i].name" href="{% url 'app:export-pdf' %}" >export pdf</a>
author[i].name 是我以这种方式发送它以查看的 JavaScript 变量:
function click(name){
$.ajax({
type: 'POST',
url: '{% url 'app:export-pdf' %}',
data: {'name': name },
});
};
如果需要,这是我的观点的一部分:
@csrf_exempt
def battery_render_pdf_view(request):
name = request.POST.get('name')
print(name)
data = MyModel.objects.filter(name=name)
当我运行代码时,我会得到例如:
迈克
无
视图的名称为 None,但它必须使用 Mike 进行过滤。 我的代码有什么问题?(我认为这是因为我调用了 Url 2 次但我没有找到如何更正它。)
谢谢大家。
【问题讨论】:
-
不要在锚标签中包含 url 标签。同样在 ajax 中,只使用 '/exportpdf' 之类的 url 路径,而不是 url 标签。
-
@RahulSalgare 我已经更改了我的 ajax url,但没有在锚标签中包含 url 标签,我怎样才能让锚标签打开新页面?谢谢。
-
尝试返回 true。见这里stackoverflow.com/questions/1346043/…。您还可以在请求调用成功后更改 ajax 中的窗口位置。
标签: django url django-views django-templates django-urls