[英]Django - non app specific models.py?
我有多個Django應用,並且在我的models.py中有一些代碼確實適用於所有應用。 有沒有辦法將其移動到特定應用程序文件夾之外的通用位置?
我有非應用專用代碼的示例:
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。
好吧,只需在項目中的某個地方創建一個python模塊,然后在模型中引用它即可。 為此,您需要一個包含__init__.py
文件的目錄:
helpers/
__init__.py
functions.py
將您的代碼放入functions.py
並可以在其他任何地方:
from helpers.functions import update_groups
post_save.connect(update_groups)
當然,模塊的名稱取決於您。
您可以創建一個模板應用程序,供所有其他可以使用該代碼的應用程序使用或擴展(類層次結構)。
我項目的目錄中的__init__.py
似乎是放置這些內容的好地方。 服務器啟動后,它將立即運行,因此它可用於其他所有功能。 到目前為止,它似乎工作正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.