在视图中使用Django URL的一部分



我需要向视图发送一个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)

当我运行代码时,我会得到例如:

Mike

视图的名称为None,但必须获取Mike进行筛选。我的代码出了什么问题?(我认为发生这种情况是因为我调用了Url两次,但没有找到如何更正它。(

谢谢大家。

最后我找到了一个简单的方法,如下所示:

模板:

<a href="the path you want/{{this.id}}" id="author[i].name">export pdf</a>

网址:

path('pdf/<int:authorid>/', pdf_view, name='pdf-data')

在视图中,您可以使用kwargs:访问authorid

def pdf_view(request,**kwargs):
author = kwargs.get('authorid',None)
data = MyModel.objects.filter(name=author)

最新更新