【问题标题】:Django link does not display new templateDjango 链接不显示新模板
【发布时间】:2016-04-26 16:26:58
【问题描述】:

我刚开始使用 django/web 开发,但遇到了问题。在我的模板文件夹中,我有 base.html、home.html 和 licenses.html 模板。在 home.html 我有一个链接 <li><a href="{% url 'licences' %}">Licences</a></li> 在我的 views.py 我有方法 licences(request):

def licences(request):
    return render(request, "licences.html", {})

但是,如果我随后运行服务器并单击链接,我会得到一个仅显示 base.html 元素的空白页面。

如何解决此问题以显示新页面?

编辑:

urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', 'searchFilm.views.home', name='home'),
    url(r'^results/$', 'searchFilm.views.results', name='results'),
    url(r'^licences/$', 'searchFilm.views.licences', name='licences')

]

licences.html

<html>

    <head>
        <!-- <title>{% block title %}HomePage{% endblock %}</title> -->
    </head>

    <body>

        <p>This page contians informations on the licences</p>

    </body>

</html>

【问题讨论】:

  • 您的urls.py 文件是什么样的?
  • 嗨,我已经更新了我的问题
  • licences.html 模板是什么样的?
  • 嗨,我又更新了我的问题
  • 请同时包含base.html

标签: python html django


【解决方案1】:

您是否填写了许可证表(许可证表中有数据)?你得到一个空白表的主要原因是你在 def 语句和 return 语句之间缺少一行代码,你需要一个查询语句,如:

licences=nameOfYourLicencesTable.objects.get(pk=id)

然后你可以在你的模板中使用:

<li><a href="{{ licenses.licensesColumnName}}">Licences</a></li>

【讨论】:

    【解决方案2】:

    需要查看 base.html 的结构,但我认为你不包括 base.html

    【讨论】:

      【解决方案3】:

      我找出了问题所在,结果发现您无法使用 HTML cmets 注释掉 Django 标记,因此即使 {% extends "base.html" %} 在注释中,页面仍在扩展 base。 html。如果我完全删除了扩展标签,或者更改了 licences.html 以符合 base.html,它会按预期工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-03
        • 2020-09-09
        • 2016-03-21
        • 2011-11-02
        • 1970-01-01
        • 1970-01-01
        • 2017-02-15
        相关资源
        最近更新 更多