簡體   English   中英

Django-非特定於應用程序的models.py?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM