Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-非应用程序特定型号.py?_Python_Django_Django Models - Fatal编程技术网

Python Django-非应用程序特定型号.py?

Python Django-非应用程序特定型号.py?,python,django,django-models,Python,Django,Django Models,我有多个Django应用程序,其中一个models.py中有一些代码真正适用于所有应用程序。有没有办法将其移动到通用的某个位置,即特定应用程序文件夹之外 我拥有的非应用程序特定代码示例: def update_groups(sender, user=None, ldap_user=None, **kwargs): ... django_auth_ldap.backend.populate_user.connect(update_groups) 用于正确识别用户并连接到正确信号的功能

我有多个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,这样管理员站点中的用户可以查看更改历史记录。但是这些确实不属于任何一个应用程序的模型。py。

好吧,在项目中的某个地方创建一个python模块,然后在模型中引用它。为此,您需要一个包含
\uuuu init\uuuu.py
文件的目录:

helpers/
   __init__.py 
   functions.py
将您的代码放入
functions.py
中,您可以在任何其他地方:

from helpers.functions import update_groups
post_save.connect(update_groups)

当然,模块的名称由您决定。

好吧,只需在项目中的某个位置创建一个python模块,然后在模型中引用它。为此,您需要一个包含
\uuuu init\uuuu.py
文件的目录:

helpers/
   __init__.py 
   functions.py
将您的代码放入
functions.py
中,您可以在任何其他地方:

from helpers.functions import update_groups
post_save.connect(update_groups)

当然,模块的名称由您决定。

您可以创建一个模板应用程序,该应用程序可以被所有其他可能使用该代码的应用程序使用或扩展(类层次结构)

您可以创建一个模板应用程序,该模板应用程序可由所有其他可能使用该代码的应用程序使用或扩展(类层次结构)

\uuuu init\uuuuu.py
在我的项目目录中似乎是放置这些东西的好地方。当服务器启动时,它会立即运行,以便其他所有东西都可以使用它。到目前为止,它似乎工作得很好。

\uuuu init\uuuu.py
在我的项目目录中似乎是放置这些东西的好地方。当服务器启动时,它会立即运行,以便其他所有东西都可以使用它。到目前为止,它似乎工作得很好。

如果您没有任何要在其中扩展的模型,那么这是我建议的更好的方法。如果你这样做了,请创建一个模板应用程序并使用类hierarchy这是一个开始,但是一个应用程序中的一个模型将调用“post_save.connect(update_groups)”,而哪个应用程序会这样做是任意的。我希望有一个站点范围的models.py或其他一些模块的概念可以尽早导入。@Greg,我认为在这种情况下,自定义模块是共享代码的最佳方式。至于信号,你需要指定发送者,当然,django会知道是哪个型号发送的。但是代码不是特定于任何一个应用程序的,那么为什么任何一个应用程序都要导入helper并调用信号呢?似乎应该有一种方法来预装站点范围的东西。如果你没有任何想要扩展的模型,这是我建议的一种更好的方法。如果你这样做了,请创建一个模板应用程序并使用类hierarchy这是一个开始,但是一个应用程序中的一个模型将调用“post_save.connect(update_groups)”,而哪个应用程序会这样做是任意的。我希望有一个站点范围的models.py或其他一些模块的概念可以尽早导入。@Greg,我认为在这种情况下,自定义模块是共享代码的最佳方式。至于信号,你需要指定发送者,当然,django会知道是哪个型号发送的。但是代码不是特定于任何一个应用程序的,那么为什么任何一个应用程序都要导入helper并调用信号呢?似乎应该有一种方法来预装站点范围的东西。这是一个有趣的信息。你能提供一个创建模板应用程序的链接吗?这比django本身更多的软件设计知识,不过,请参考以下内容:| | | | | | | | | |好运气这是一个有趣的信息。你能提供一个关于创建模板应用程序的链接吗?这比django本身更多的软件设计知识,请参考以下内容:| | | | | | |祝你好运