我是Django的新手,还有模板标签和HTML,并且有一个模板,在该模板中,我使用for循环来填充数据库中的引导卡。在模型中,我有一个具有PDF文件的Resume_link字段。我只想让PDF文件显示在其他模板文件中,而不是在无法读取的卡片中显示。 (由于当有人单击链接时我处于循环状态,所以我只希望连接到该卡的特定简历显示在新模板中。)因此,我认为我需要做的就是通过某种方式传递索引的索引。循环或另一个标识正确数据库条目的变量。但是我认为我缺少一些基本知识,并且不了解如何在一个模板和另一个模板中传递模板标签的值。有什么方法可以将变量和url一起传递给视图,以便可以使用该变量在所需模板中创建新的模板标签?
View
其中show_pdf是我要显示整个PDF文件的视图。
那个模板show_pdf是
我想做的是能够将key.Resume_link.url传递给该数据库表的pk,如果不是,则传递给show_pdf模板。
show_pdf的视图是
{% for key in myres %}
...fill out other parts of cards and create the below link...
<a href="{% url "show_pdf" %}" style="font-size: 20px">
{% endfor %}
答案 0 :(得分:0)
代替:
<a href="{% url "show_pdf" %}">
...您将包含一个参数,例如:
<a href="{% url "show_pdf" pdf_id %}">
现在将按照相应的urlconf条目指示的格式设置结果URL,例如:
http://my.web.site/resumes/show_pdf/1343
(如果pdf_id = 1343
...)
您必须指定与相应urlconf条目期望的一样多的参数,并且可以使用位置或关键字语法(但不能同时使用)。
然后,当用户单击链接时,该urlconf中指定的View将获得控制,并且它将具有指定的参数值(1343
...)作为其参数之一。您将选择PDF并将其发送到模板以正确呈现给用户。
答案 1 :(得分:0)
您可以在URL中传递当前的pdf id
并进行访问。
def show_pdf(request, pdf_id):
template = 'show_pdf.html'
myres=Research.objects.get(id=pdf_id)
context = {'myres': myres}
return render(request,'mainapp/show_pdf.html', context)
在urls.py中,您必须这样写
path('show_pdf/?P<int:pdf_id>/', views.show_pdf, name="show_pdf")
在HTML中写<a href="{% url "show_pdf" key.id %}">