首页 > 解决方案 > 如何在 django html 中制作详细视图?

问题描述

如何根据其 id 显示数据?

现在,如果我点击一个项目,我会得到这样的网址 http://localhost:8000/novel/11

现在,这是我写的views.py

 def novel_page(request, id):
     return render(request, 'novel.html')

并且 urls.py 是

 path('novel/<int:id>', views.novel_page, name='novel'),

我想显示带有 id 的项目的详细信息,就像我传递给 url 的内容一样。

例如,如果我点击 id 为 11 的数据,那么系统将显示所有基于 id 11 的数据。

数据来自数据库,但来自具有如下预览的 XML 文件:

<Collection>
    <DOC>
        <DOCNO>1</DOCNO>
        <Title>Neon Prey (A Prey Novel) Hardcover </Title>
        <Author>John Sandford</Author>
        <Text>
            This is novel 1
        </Text>
    </DOC>
    <DOC>
        <DOCNO>2</DOCNO>
        <Title>The Mother-in-Law</Title>
        <Author>Sally Hepworth</Author>
        <Text>
            This is novel 2
        </Text>
    </DOC>
    <DOC>
        <DOCNO>3</DOCNO>
        <Title>Saman</Title>
        <Author>Ayu Utami</Author>
        <Text>
            This is novel 3
        </Text>
    </DOC>
</Collection>

这是将数据传递给索引的views.py

def display(request):
    if request.method == 'POST':
        text = request.POST['input_text']
        result = main.main(text)
        content = {'result': result}
        return render(request, 'index.html', content)
    return render(request, 'index.html')

我用这段代码显示数据

{% for i in result %}
    <h4><a href="/novel/{{i.docno}}">{{i.title}}</a></h4>      
{% endfor %}

谢谢。

标签: pythonhtmldjango

解决方案


<a href="{% url 'novel' id=i.docno %}">{{i.title}}</a>

您应该始终使用 url 来构建链接,除非在非常特殊的情况下您必须自己呈现路径。在这种情况下,您应该编写一个自定义模板标签来执行此操作。


推荐阅读