Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.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项目中删除应用程序_Python_Django - Fatal编程技术网

Python 如何从django项目中删除应用程序

Python 如何从django项目中删除应用程序,python,django,Python,Django,最初,我在Django的一个项目中制作了两个应用程序(app_a和app_b)。现在我想删除一个(比如app_a)。我应该怎样做?从设置文件中的已安装应用中删除应用名称是否足够?您需要删除或检查以下内容: 从安装的应用程序中删除应用程序 删除该应用中模型的所有数据库表(请参阅数据库中的app\u name\u model\u name) 检查其他应用中的任何导入(可能是他们正在从该应用导入代码) 检查模板是否使用该应用程序的任何模板标记(如果该应用程序不再存在,则会产生错误) 检查您的设置文件

最初,我在Django的一个项目中制作了两个应用程序(app_a和app_b)。现在我想删除一个(比如app_a)。我应该怎样做?从设置文件中的
已安装应用中删除应用名称是否足够?

您需要删除或检查以下内容:

  • 从安装的应用程序中删除应用程序
  • 删除该应用中模型的所有数据库表(请参阅数据库中的
    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