2015-08-10 24 views
11

INSTALLED_APPS içinde uygulamaların sırası önemlidir? base.py ve production.py ve ben base.py tüm ayarlarımı koymak ve sonra production.py bazı ayarlarıUygulama siparişlerinin önemi INSTALLED_APPS

`from base import *` 

yazmak ve yaz: İki settings dosyalarla settings klasörü var çünkü bunu sorun. Ayrıca benim base.py içinde bir liste olmak için INSTALLED_APPS yapıyorum, bir tuple değil. Çünkü bazı uygulamaları production ayarları kaldırmak istiyorum. production.py ben yazmak istiyorum:

Bu durumda
NOT_USED_APPS = ['debut_toolbar', 'other_odd_app',] 
INSTALLED_APPS = list(set(INSTALLED_APPS) - set(NOT_USED_APPS)) 

, INSTALLED_APPS uygulamayla sırası base.py

cevap

15

gibi değildir Evet, sipariş oldukça önemlidir.INSTALLED_APPS settings üzerinde Django resmi Dokümanlar

:

birden fazla uygulama aynı kaynak (şablon, statik dosya, yönetim komutu, çeviri) farklı sürümlerini sağlamak

, INSTALLED_APPS ilk listelenen uygulama önceliği vardır .

Örnek-1 Şablonlar: Eğer Motoruna bir yükleyiciler argüman olarak geçtiyseniz

django.template.loaders.app_directories.Loader

bu şablon yükleyici TEMPLATES ortamda DjangoTemplates arka uç etkin veya varsa daha sonra dosya sisteminde Django uygulamalarından şablon yükler.

INSTALLED_APPS'daki her uygulama için, yükleyici bir şablon alt dizini arar. Dizini varsa, Django oradaki şablonları arayacaktır.

INSTALLED_APPS = ('myproject.app1', 'myproject.app2') 

Şimdi, şablon some_template.html almak istiyorum:

Projemdeki i olarak INSTALLED_APPS tanımladığınız düşünelim. Sonra get_template('some_template.html') bu sırada bu dizinlerde some_template.html, arayacaktır: Daha sonra ilk bulduğu birini kullanacak

/path/to/myproject/app1/templates/ # checks here first 
/path/to/myproject/app2/templates/ # Then checks here 

.

o section alıntı:

INSTALLED_APPS sırası önemlidir!

Örnek-2: Çeviriler

Django keşfetmek çeviriler için aşağıdaki algoritmayı geçerlidir: LOCALE_PATHS listelenen

  1. dizinleri daha yüksek önceliğe sahip ilk görünen olanlarla, en yüksek önceliğe sahip daha sonra görünenlerden daha.
  2. Ardından, arar ve INSTALLED_APPS listelenen yüklü uygulamalar her birinde bir locale dizin varsa kullanır. İlk önce görünenler, daha sonra ortaya çıkanlardan daha yüksek önceliğe sahiptir.
  3. Son olarak, django/conf/locale içinde Django sağlanan temel için bir yedek olarak kullanılır. Biz bu emri görebilirsiniz

burada da önemlidir.

Örnek-3 Yönetim Komutları: Django 1.7 sürüm notları itibaren

management commands and order of INSTALLED_APPS tarih:

çok sayıda uygulama yönetimi aynı isimde komutları sağlayan Django uygulamasından komutunu yükler INSTALLED_APPS'da ilk gelir. Önceki sürümler, son gelen uygulamasından komutu yükledi.

Bu tür statik dosyaları, şablonlar ve çevirilerin olarak INSTALLED_APPS sırasına güvenmek diğer bölgelerinde Django , doğrultusunda yönetim komutlarının keşfini getiriyor.

+1

harika cevap ... – Abhishek

İlgili konular