【问题标题】:How to remove the breadcrumbs and branding in django template?如何删除 django 模板中的面包屑和品牌?
【发布时间】:2012-01-14 05:02:01
【问题描述】:

我可以用 django 的力量覆盖面包屑。现在我想彻底删除面包屑而不需要任何标识,因为我使用 jQuery 来删除面包屑和品牌,如

  $('.breadcrumbs').remove() 
  $('#branding').remove()

但是,每当我加载一个页面时,品牌和面包屑也会加载,然后只是它被删除了。每当我在页面上加载新内容时,它就会出现。这是在此处捕获并附加的。您能否建议如何完全删除两者?

【问题讨论】:

  • 这是您使用 Django 开发的网站吗?
  • 老兄,拜托……这个问题不好。如果您还没有注意到 Django 模板系统和覆盖块的方法,那么您对 ​​Django 完全陌生并且无法帮助自己,因此您不应该认真地为专业合作伙伴开发任何东西。人们在这里帮助您解决困难和棘手的问题,而不是编写您的代码。不,你不应该用 jquery 删除东西。如果你想让它完全消失,你必须覆盖 django.contrib.admin 模板。
  • 绅士们,我知道要覆盖模板中的 django 面包屑和品牌。我的问题是要从 django 源代码中完全删除面包屑和品牌。如果你用空块覆盖它意味着它仍然隐藏在正确的位置?问题是彻底丢弃它。
  • 对不起,我现在看到你完全迷路了。当您从运行 Django 的服务器请求数据时,我建议您提高对幕后实际发生的事情的基本理解和概念。例如在线免费的 Djangobook.com:djangobook.com/en/2.0/chapter01
  • 人们因为用户是初学者而对措辞正确的问题投反对票?我不明白。

标签: django jquery-selectors django-admin django-templates


【解决方案1】:

将管理模板从contrib/admin/templates/admin/base_site.html 复制到您的项目模板目录templates/admin/templates/admin/base_site.html。然后你可以覆盖你不需要的任何东西。例如:

{% extends "admin/base.html" %}
{% load i18n %}

{% block title %}{{ title }} | {% trans 'Django site admin' %}{% endblock %}

{% block branding %}
  {# add your branding in this block %}
{% endblock %}

{% block breadcrumbs %}
  {# removed #}
{% endblock %}

{% block nav-global %}{% endblock %}

更新:如果您将admin/base.html 复制到您的模板目录并删除整个块(而不仅仅是它的内容),其他模板可以定义此块,但它不会出现在页面上。

【讨论】:

  • 在这里我知道要覆盖面包屑和品牌。在这里我问是否可以从 django 源代码中删除这些?因为即使你覆盖你也会得到隐藏的东西。即使我也不想那样。
  • 如果您在模板中覆盖并删除它们,它们根本不会出现在 HTML 页面中。
  • 这不起作用。原因是 change_list.html 等其他模板文件将覆盖您放入 base_site.html 的内容,并且面包屑仍会出现。
  • @MarwanAlsabbagh 是的。如果您将admin/base.html 复制到您的模板目录并删除整个块(而不仅仅是它的内容),则其他模板可以定义此块,但它不会出现在页面上。
  • @bmihelac 请用您描述的方法更新您的答案。
猜你喜欢
  • 2014-04-16
  • 2010-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多