2015-06-05 72 views
0

我創建一個Django應用程序的Python包,幾乎與django-tinymce
約Django的TinyMCE的有趣的一點是,每次我重新啓動我的Web服務器,時間,例如我運行:如何Django的可重用應用程序可以初始化自己?

python manage.py runserver 

莫名其妙地自動django-tinymce裏的一個settings.py文件開始運行。
這怎麼可能?
我只是在INSTALLED_APPS中添加tinymce,沒有別的,但python2.7/site-packages/tinymce/settings.py裏面的代碼開始運行,並且每次重啓我的web服務器或運行任何manage.py命令時都會執行一些初始化操作。

+0

你在說什麼樣的初始化操作? –

+0

@Ales初始化用於將目錄路徑添加到STATICFILES_DIRS –

回答

0

由於django 1.7每個應用程序都可以包含一個app.py文件來完成它需要做的任何初始化。 假設我們有一個名爲profile.In應用你的應用程序目錄下創建一個這樣的apps.py:

#apps.py 
from django.apps import AppConfig 
class ProfileConfig(AppConfig): 
    name = "profiles" 
    verbose_name = 'User Profiles' 
    def ready(self): 
     #do what ever you want 

一個步驟來完成這個行爲是指定default_app_config 應在初始化的.py的發生您的應用程序:

# profile/__init__.py 
default_app_config = 'profile.apps.ProfileConfig' 

這種行爲可以在多數用例包括使用:不斷變化的項目設置,註冊信號處理程序

更多細節可參見Django 1.7 release notesDjango docs:Applications

0

這樣的初始化代碼通常放在由Django在啓動或重新啓動時運行的models.py中。 在這個示例應用程序中,它只是一個導入問題 - models.py導入窗口小部件和窗口小部件導入設置。

相關問題