-
子類可以重寫此方法來執行初始化任務,例如注冊信號。一旦注冊表完全填充,它就會被調用。
盡管您無法在定義了
類的 module-level 處導入模型,但您可以使用AppConfigimport語句或在get_model()ready()中導入它們。如果您正在注冊
,則可以通過其字符串標簽而不是使用模型類本身來引用發件人。model signals例子:
from django.apps import AppConfig from django.db.models.signals import pre_save class RockNRollConfig(AppConfig): # ... def ready(self): # importing model classes from .models import MyModel # or... MyModel = self.get_model('MyModel') # registering signals with the model's string label pre_save.connect(receiver, sender='app_label.MyModel')警告
盡管您可以如上所述訪問模型類,但請避免在
實現中與數據庫交互。這包括執行查詢的模型方法(ready()、save()、管理器方法等),以及通過delete()django.db.connection進行的原始 SQL 查詢。您的方法將在每個管理命令的啟動期間運行。例如,即使測試數據庫配置與生產設置分開,ready()manage.py test仍會針對生產數據庫執行一些查詢!注意
在通常的初始化過程中,
ready方法隻被Django調用一次。但在某些極端情況下,特別是在擺弄已安裝應用程序的測試中,ready可能會被多次調用。在這種情況下,或者編寫冪等方法,或者在AppConfig類上放置一個標誌,以防止重新運行應該隻執行一次的代碼。
本文介紹 django.apps.AppConfig.ready 的用法。
聲明
AppConfig.ready()[source]
相關用法
- Python Tweepy API.mentions_timeline()用法及代碼示例
- Python Tweepy API.get_user()用法及代碼示例
- Python Tweepy API.list_timeline()用法及代碼示例
- Python Django ACos用法及代碼示例
- Python Django Area用法及代碼示例
- Python Tweepy API.add_list_members()用法及代碼示例
- Python Django Abs用法及代碼示例
- Python Django AuthenticationForm.confirm_login_allowed用法及代碼示例
- Python Tweepy API.create_block()用法及代碼示例
- Python Django ATan用法及代碼示例
- Python Tweepy API.trends_closest()用法及代碼示例
- Python Django ArchiveIndexView用法及代碼示例
- Python Tweepy API.send_direct_message()用法及代碼示例
- Python Tweepy API.destroy_status()用法及代碼示例
- Python Tweepy API.destroy_saved_search()用法及代碼示例
- Python Django ArraySubquery用法及代碼示例
- Python Tweepy API.get_list()用法及代碼示例
- Python Tweepy API.favorites()用法及代碼示例
- Python Tweepy API.blocks_ids()用法及代碼示例
- Python Tweepy API.configuration()用法及代碼示例
- Python Tweepy API.lists_memberships()用法及代碼示例
- Python Tweepy API.home_timeline()用法及代碼示例
- Python Tweepy API.unretweet()用法及代碼示例
- Python Tweepy API.create_mute()用法及代碼示例
- Python Tweepy API.search_users()用法及代碼示例
注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.apps.AppConfig.ready。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
