2016-09-19 76 views
2

我想重写Django的默认模板。现在只需base_site.html。我正在尝试更改文字Django管理。我如何重写Django的默认管理模板和布局

我做了以下内容:

  1. 我在app目录中创建一个文件夹/opt/mydjangoapp/templates/admin
  2. 我然后复制原来的Django的管理模板文件夹的内容到管理和这里的内容: 404.html auth change_list.html delete_selected_confirmation.html index.html pagination.html search_form.html 500.html base.html change_list_results.html edit_inline invalid_setup.html popup_response.html submit_line.html actions.html base_site.html date_hierarchy.html f ilter.html的login.html prepopulated_fields_js.html app_index.html change_form.html delete_confirmation.html包括object_history.html related_widget_wrapper.html
  3. 我改变了base_site.html的内容,所以我有标题 '我的应用管理'而不是 'Django的管理'
  4. 我的设置文件,如下所示:

    INSTALLED_APPS = (
        'mydjangoapp', 
        'django.contrib.admin', 
        'django.contrib.auth', 
        'django.contrib.contenttypes', 
        'django.contrib.sessions', 
        'django.contrib.messages', 
        'django.contrib.staticfiles', 
        'debug_toolbar', 
    ) 
    
    ... 
    
    TEMPLATES = [ 
        { 
         'BACKEND': 'django.template.backends.django.DjangoTemplates', 
         'DIRS': ['/opt/mydjangoapp/templates/'], 
         'OPTIONS': { 
          'context_processors': [ 
           'django.template.context_processors.debug', 
           'django.template.context_processors.request', 
           'django.contrib.auth.context_processors.auth', 
           'django.contrib.messages.context_processors.messages', 
          ], 
          'debug':True, 
          'loaders': (
           'django.template.loaders.filesystem.Loader', 
           'django.template.loaders.app_directories.Loader' 
          ), 
         }, 
        }, 
    ] 
    

但不幸的是,Django 1.8版似乎忽略了我的模板更改并加载了原始模板文件。任何有关我如何覆盖管理员的原始布局的建议。考虑改变标题只是我想要改变的开始?

+0

你可以发布你的'INSTALLED_APPS'吗?这里 –

+0

@PauloScardine你去:-) INSTALLED_APPS =( 'mydjangoapp', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', “django.contrib中.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'debug_toolbar', ) –

+1

看起来OK,你的应用程序列在第一位...我怀疑你必须移动里面的模板文件夹你的应用程序('/ opt/mydjangoapp/mydjangoapp/templates /'而不是'/ opt/mydjangoapp/templates /')。我猜'settings.TEMPLATES ['DIRS']'是全球模板,不绑定到任何特定的应用程序,所以他们将有最低优先级。 –

回答

2

首先,请确保您的应用程序是首先列出的,因为Django始终根据settings.INSTALLED_APPS中的顺序从第一个找到它们的应用程序中获取资源。

在这种情况下,应用程序首先被列出,但覆盖不起作用,因为模板被放置在settings.TEMPLATES['DIRS']下列出的全局模板目录下,这些目录与任何特定的应用程序无关并且将具有最低优先级。

如果您遇到这种情况,则必须将模板文件夹你的应用程序中(例如,/opt/mydjangoapp/mydjangoapp/templates/代替/opt/mydjangoapp/templates/)和settings.TEMPLATES['DIRS']擦拭参考。