Python 如何从django项目中删除应用程序
最初,我在Django的一个项目中制作了两个应用程序(app_a和app_b)。现在我想删除一个(比如app_a)。我应该怎样做?从设置文件中的Python 如何从django项目中删除应用程序,python,django,Python,Django,最初,我在Django的一个项目中制作了两个应用程序(app_a和app_b)。现在我想删除一个(比如app_a)。我应该怎样做?从设置文件中的已安装应用中删除应用名称是否足够?您需要删除或检查以下内容: 从安装的应用程序中删除应用程序 删除该应用中模型的所有数据库表(请参阅数据库中的app\u name\u model\u name) 检查其他应用中的任何导入(可能是他们正在从该应用导入代码) 检查模板是否使用该应用程序的任何模板标记(如果该应用程序不再存在,则会产生错误) 检查您的设置文件
已安装应用中删除应用名称是否足够?您需要删除或检查以下内容:
- 从安装的应用程序中删除应用程序
- 删除该应用中模型的所有数据库表(请参阅数据库中的
app\u name\u model\u name
)
- 检查其他应用中的任何导入(可能是他们正在从该应用导入代码)
- 检查模板是否使用该应用程序的任何模板标记(如果该应用程序不再存在,则会产生错误)
- 检查您的设置文件,查看您是否未使用该应用程序中的任何代码(例如
您的应用程序/context\u processors.py中的上下文处理器,如果它有这样的文件)
- 检查应用程序的任何静态内容是否在其他应用程序中使用
- 完全删除应用程序目录
如果您一直遵循正确的编码原则(即,每个Django应用程序都是web应用程序的独立部分),那么上述大多数情况都不会发生。但当其他应用程序确实使用该应用程序的某些部分时,您需要首先进行检查,因为删除该应用程序之前可能需要重构。这取决于该应用程序(如何安装、如何使用等),但通常您可以从已安装的应用程序中删除该应用程序,然后删除数据库中的表。如果,经过Simeon Visser解释的操作和Elias Dorneles在注释中引用的另一个答案后,在运行服务器后,您会得到如下结果:
System check identified 1 issue (0 silenced).
Exception in thread django-main-thread:
Traceback (most recent call last):
File "C:\python\releases\381_x64\lib\threading.py", line 932, in _bootstrap_inner
[...]
File "c:\python\env\django3python381\lib\site-packages\django\db\migrations\graph.py", line 58, in raise_error
raise NodeNotFoundError(self.error_message, self.key, origin=self.origin)
django.db.migrations.exceptions.NodeNotFoundError: Migration oeuvres.0001_initial dependencies reference nonexistent parent node ('medias', '0001_initial')
浏览到您的appname.migrations文件夹,并注释对要删除的应用程序的任何引用。在上面的例子中,作品应用程序依赖于媒体应用程序,我想删除该应用程序,该应用程序在作品.0001_初始迁移文件中定义
我不认为/不知道这是否会对迁移过程产生影响,但我打算为生产重置所有迁移内容,然后导入数据,如以下所述:
关于django_contet_类型、auth_权限和其他auth表(除了django_迁移,如果需要的话)?这个答案是对另一个的补充:(其中提到auth_权限和其他表)大家好。我想。。如果它是一个过程,那么应该由django完成,提供的方式与执行子命令创建子命令的方式相同。你不觉得吗?还要检查/settings//url.py