我有多個Django應用程序,並且我的一個models.py中有一些代碼確實適用於所有應用程序。有沒有辦法將它移到某個特定應用程序文件夾以外的通用位置?的非應用程序專用碼Django - 非應用程序特定的models.py?
例I具有:
def update_groups(sender, user=None, ldap_user=None, **kwargs):
...
django_auth_ldap.backend.populate_user.connect(update_groups)
的函數正確地識別用戶,並連接到正確的信號。
我還有一個模型代理django.contrib.admin.models.LogEntry和該模型代理的modelAdmin,以便管理員站點中的用戶可以查看更改歷史記錄。但是這些不屬於任何一個應用程序的models.py。
這是一個更好的方法,我建議如果你沒有任何你想要擴展的模型。如果你這樣做,創建一個模板應用程序,並使用類層次結構 – tiagoboldt 2011-04-04 13:07:38
這是一個開始,但一個應用程序中的一個模型將調用「post_save.connect(update_groups)」,它會是一種隨心所欲的應用程序。我希望有一個站點範圍內的models.py或其他一些模塊可以提前導入的概念。 – Greg 2011-04-04 13:13:06
@Greg,我認爲自定義模塊是在這種情況下共享代碼的最佳方式。至於信號,你需要指定'sender',當然,那麼Django會知道哪個模型發送了它。 – 2011-04-04 13:15:25