最初我在Django的一个项目中创建了2个应用程序(app_a和app_b)。现在我要删除一个(比如app_a)。我该怎么办?是否从设置文件中的INSTALLED_APPS
中删除了应用名称?
答案 0 :(得分:34)
您需要删除或检查以下内容:
INSTALLED_APPS
删除应用。app_name_model_name
)。your_app/context_processors.py
中的上下文处理器,如果它有文件等)。当您遵循正确的编码原则(即,每个Django应用程序是Web应用程序的自包含部分)时,上述大多数情况都不会发生。但是当其他应用程序确实使用该应用程序的某些部分时,您需要首先检查它,因为它可能需要重构才能删除应用程序。
答案 1 :(得分:0)
这取决于应用程序(如何安装,如何使用等),但通常您可以从INSTALLED_APPS
中删除应用程序,然后删除数据库中的表。
答案 2 :(得分:0)
如果在 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文件夹,并注释对要删除的应用程序的所有引用。在上述情况下,作品应用程序与我要删除的 media 应用程序具有依赖性,该依赖关系已在 oeuvres.0001_initial 迁移中定义文件。
我不认为/尚不知道这是否会对迁移过程产生影响,但我打算将所有迁移内容重置为生产版本,然后导入数据,例如此处所述: https://simpleisbetterthancomplex.com/tutorial/2016/07/26/how-to-reset-migrations.html
答案 3 :(得分:-6)
是的,然后在cmd中运行
pip uninstall appName
转到项目目录并删除应用,
在PyCharm
中右键单击并删除它。