【问题标题】:Django 1.7 - updating base_site.html not workingDjango 1.7 - 更新 base_site.html 不起作用
【发布时间】:2014-11-01 21:00:12
【问题描述】:

我正在关注 django 1.7 的教程(再次)。我无法让管理站点更新。我遵循了这个:

Django: Overrideing base_site.html

这个:

Custom base_site.html not working in Django

还有一些非现场的东西链接。

我的设置文件如下所示:

""" Django settings for website project.

For more information on this file, see https://docs.djangoproject.com/en/1.7/topics/settings/

For the full list of settings and their values, see https://docs.djangoproject.com/en/1.7/ref/settings/ """

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) import os BASE_DIR = os.path.dirname(os.path.dirname(__file__))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = ''

# SECURITY WARNING: don't run with debug turned on in production! DEBUG = True

TEMPLATE_DEBUG = True

TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')] 

ALLOWED_HOSTS = []


# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',   'blog',

)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware', )

ROOT_URLCONF = 'website.urls'

WSGI_APPLICATION = 'website.wsgi.application'


# Database
# https://docs.djangoproject.com/en/1.7/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '',         'USER': 'root',         'PASSWORD': '',         'HOST': '127.0.0.1',        'PORT': '3306',
    } }

# Internationalization
# https://docs.djangoproject.com/en/1.7/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'GMT'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.7/howto/static-files/

STATIC_URL = '/static/'

而且我知道我的文件结构可以正常工作,因为如果我从 base_site.html 中删除所有内容并将其替换为“wtf”,这正是我访问管理站点时显示的内容。我已经从 django 安装中删除了 admin/base_site.html,但我仍然得到了“Django 管理”。

当它没有说“wtf”时,我的 base_site.html 看起来像这样:

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

{% block title %}{{ title }} | {{ site_title|default:_('whatever site admin') }}{% endblock %}

{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('whatever site administration') }}</a></h1>
{% endblock %}

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

我想这一定与 1.7 有关,因为我在 1.6 中工作,但我检查了 1.6、1.7 和 dev 的文档,但找不到问题所在。

我正在运行本地 MySQL 数据库的虚拟环境中的 Windows 上进行开发。

【问题讨论】:

    标签: python django django-templates django-admin


    【解决方案1】:

    首先,我不确定这是复制/粘贴问题,还是您实际上已将 TEMPLATE_DIRS 注释掉。它需要是一个非注释行:

    TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]
    

    至于真正的问题,您必须替换更多模板才能使其正常工作,因为 site_title 在这里定义:https://github.com/django/django/blob/1.7/django/contrib/admin/sites.py#L36 并且 site_header 在这里定义:https://github.com/django/django/blob/1.7/django/contrib/admin/sites.py#L39

    只有在这些不存在时默认才会起作用,所以你的模板应该是这样的:

    {% extends "admin/base.html" %}
    
    {% block title %}{{ title }} | whatever site admin{% endblock %}
    
    {% block branding %}
    <h1 id="site-name"><a href="{% url 'admin:index' %}">whatever site administration</a></h1>
    {% endblock %}
    
    {% block nav-global %}{% endblock %}
    

    您可以在此处了解有关默认标签的更多信息:https://docs.djangoproject.com/en/1.7/ref/templates/builtins/#default

    【讨论】:

    • 顺便说一句,django 1.6 中不存在 site_title 和 site_header,这就是你以前的工作的原因。
    • 谢谢扎克。这是 TEMPLATE_DIRS 上的复制粘贴问题。非常感谢,你的建议奏效了。我会阅读默认标签。
    • 只是为了澄清重新教程的建议:{% block title %}{{ title }} | {{ _('Polls administration') }} {% endblock %}&lt;h1 id="site-name"&gt;&lt;a href="{% url 'admin:index' %}"&gt;{{ _('Polls administration') }}&lt;/a&gt;&lt;/h1&gt;
    猜你喜欢
    • 2017-07-13
    • 2013-07-21
    • 2015-07-13
    • 2014-11-14
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    相关资源
    最近更新 更多