2016-09-19 25 views
2

Djangoのデフォルトテンプレートを上書きしようとしています。今のところはbase_site.htmlです。私はテキストdjangoの管理を変更しようとしています。私は、管理者テンプレートは、ここで管理者に内容をフォルダ、元のジャンゴをコピーし/opt/mydjangoapp/templates/admin Djangoのデフォルト管理テンプレートとレイアウトを上書きする方法

    1. は、私は私のアプリのディレクトリにフォルダを作成している内容: 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私がタイトルを持っているよう
    2. は、私は、base_site.htmlの内容を変更し '私のアプリ管理'以下のように 'ジャンゴ管理' とは対照的に
    3. 私の設定ファイルが見えます:

      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

    あなたのアプリケーションが最初にリストされているようです...テンプレートフォルダを内部に移動する必要があると思われますあなたのアプリ( '/ opt/mydjangoapp/templates /'の代わりに '/ opt/mydjangoapp/mydjangoapp/templates /')を使用してください。私は 'settings.TEMPLATES ['DIRS']'は特定のアプリに結び付けられていないグローバルなテンプレートなので、優先度が最も低いと思います。 –

    答えて

    2

    最初に、アプリケーションが最初にリストされていることを確認してください.Djangoは、最初に見つかったアプリケーションから、settings.INSTALLED_APPSの順番でリソースを取得します。

    この場合、アプリは最初に表示されましたが、特定のアプリに関連付けられておらず優先度が最も低いグローバルテンプレートディレクトリsettings.TEMPLATES['DIRS']の下にテンプレートが配置されているため、オーバーライドが機能しませんでした。

    これが当てはまる場合は、アプリ内でテンプレートフォルダを移動する必要があります(/opt/mydjangoapp/mydjangoapp/templates/ではなく/opt/mydjangoapp/templates/)。settings.TEMPLATES['DIRS']で参照をワイプします。

    関連する問題