2016-09-19 77 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']擦拭參考。