Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Hyperlink-Django模板中嵌入模板变量_Python_Html_Django_Django Templates - Fatal编程技术网

Python 如何在Hyperlink-Django模板中嵌入模板变量

Python 如何在Hyperlink-Django模板中嵌入模板变量,python,html,django,django-templates,Python,Html,Django,Django Templates,我对web开发、Django、python、html等都是全新的。我有一个基本的Django应用程序,它显示已输入数据库的出版物标题列表。这个很好用 现在,我想使每个出版物标题都是一个链接,当单击该链接时,它会呈现另一个包含所单击出版物详细信息的模板。到目前为止,我知道如何获取出版物链接以呈现模板,但我正在尝试找出如何将出版物标题传递到超链接,以便在详细信息模板中呈现的数据特定于所选的标题 以下是我的出版物模板中的内容,其中显示了所有出版物(这是不正确的,但希望它能澄清我试图做的事情): 正如我

我对web开发、Django、python、html等都是全新的。我有一个基本的Django应用程序,它显示已输入数据库的出版物标题列表。这个很好用

现在,我想使每个出版物标题都是一个链接,当单击该链接时,它会呈现另一个包含所单击出版物详细信息的模板。到目前为止,我知道如何获取出版物链接以呈现模板,但我正在尝试找出如何将出版物标题传递到超链接,以便在详细信息模板中呈现的数据特定于所选的标题

以下是我的出版物模板中的内容,其中显示了所有出版物(这是不正确的,但希望它能澄清我试图做的事情):


正如我所说,我是一个非常初学者,所以如果我以错误的方式处理这个问题,任何建议或资源都将不胜感激。谢谢。

这在我看来很不错,不过如果所有出版物标题都是唯一的,并且您希望将
出版物的实例而不是查询集(包含一个项目)传递到详细信息模板中,您可能希望在查看功能中使用
get
而不是
过滤器
。这将抛出一个错误,即存在0个或>1个匹配项,但听起来这可能是您想要的行为

然而,我不确定你在这里错过了什么。
publication\u detail.html
看起来像什么?假设这些细节都包含在相关的发布实例中,那么您应该在上面的代码中基本上拥有呈现细节所需的一切。

如果您使用
url
模板标记,您就可以轻松地做到这一点

url.py 我希望你也知道,URL比普通的
CharField
好得多


另一种选择:

url.py views.py
这将使用条目的主键而不是标题。如果你想有一个带有标题的url,你需要在你的模型上添加并使用一个。

看看问题是这样一行:“我认为在超链接中有{publication.title}似乎不起作用。我收到一个“找不到页面”错误,因此出版物_detail.html无法呈现。我明白了,谢谢。正如下面的答案所示,使用
url
标记指定您的
href
将非常容易地为您解决此问题。谢谢,刚刚尝试了此操作,并出现以下错误:NoReverseMatch at/publications Reverse for'details'with arguments'(u'publications',u'Awesome TV Shows')和关键字参数“{}”,未找到。再次感谢。好的,我明白你的意思,我会调查斯拉格菲尔德。但有一个问题-我使用了您发布的替代代码,出版物没有显示为链接(它们不能单击)。我在模板中实现了URL标记,如:
    {%for publication in publication_list%}
  • {%URL'details''publications'publications.pk%}
  • {%endfor%}
这是否正确?抱歉,我必须去,我应该包括整个模板,因为只有标签可能不清楚它的用法。不过很高兴你找到了答案
<html>
    <head><title>Publications</title></head>
    <body>
        <h1>Publications</h1>
        <ul>
            {% for publication in publication_list %}
            <li><strong><a href="/publications/{{publication.title}}/detail">{{ publication.title}}</strong></li></a>
            {% endfor %}
        </ul>
    </body>
</html>
url(r'^(?P<detail_type>\w+)/(?P<link_item>\w+)/detail$', get_details)
def get_details(request, detail_type=None, link_item=None):
    if detail_type == "publications":
        publication = Publication.objects.filter(title__iexact=link_item)
        return render(request, 'publication_detail.html', {'detail_type' : detail_type, 'publication' : publication})
    elif ....
url(r'^(?P<detail_type>\w+)/(?P<link_item>\w+)/detail$', get_details, name='details')
{% url 'details' 'publications' publication.title %}
url(r'^(?P<detail_type>\w+)/(?P<pk>\w+)/detail$', get_details, name='details')
{% url 'details' 'publications' publication.pk %}
def get_details(request, detail_type=None, pk=None):
    if detail_type == "publications":
        publication = Publication.objects.get(pk=pk)
        return render(request, 'publication_detail.html', {'detail_type' : detail_type, 'publication' : publication})
    elif ....