如何更改Django应用程序的名称?
我已经改变了在Django的应用程序的名称,通过重命名其文件夹,导入和所有的引用(模板/索引)。 但是现在,当我尝试运行python manage.py runserver时,出现这个错误 
 Error: Could not import settings 'nameofmynewapp.settings' (Is it on sys.path?): No module named settings 
我怎样才能debugging和解决这个错误? 任何线索?
按照以下步骤在Django中更改应用程序的名称:
- 重命名您的项目根目录中的文件夹
-  在其依赖关系中更改对应用程序的引用,即应用程序的views.py,urls.py,manage.py和settings.py文件。
-  使用以下命令编辑数据库表django_content_type:UPDATE django_content_type SET app_label='<NewAppName>' WHERE app_label='<OldAppName>'
-  同样,如果你有模型,你将不得不重新命名模型表。 对于postgres,使用ALTER TABLE <oldAppName>_modelName RENAME TO <newAppName>_modelName。 对于MySQL我也认为它是相同的(正如@null_radix所提到的)
-   (对于Django> = 1.7)更新django_migrations表以避免重新运行以前的迁移:UPDATE django_migrations SET app='<NewAppName>' WHERE app='<OldAppName>'。 注意 :如果Django 1.8+需要这个步骤,则有一些争议(在注释中)。 如果有人知道肯定请在这里更新。
-  如果您的models.py的元类具有app_name列表,请确保也重命名(由@will提及)。
-  如果您已将空间或templates文件夹命名为您的应用程序,则还需要重命名这些文件夹。 例如,将old_app/static/old_app重命名为new_app/static/new_app。
-  为了重命名django models,您需要更改DB中的django_content_type.name条目。 对于postgreSQL,使用UPDATE django_content_type SET name='<newModelName>' where name='<oldModelName>' AND app_label='<OldAppName>'
  元数据点(如果使用virtualenv):值得注意的是,如果你正在重命名包含你的virtualenv的目录,你的env中可能会有几个文件包含一个绝对path,并且还需要更新。 如果你得到错误,如ImportError: No module named ...这可能是罪魁祸首。  (感谢@danyamachine提供这个)。 
其他参考资料:您可能还想参考下面的链接以获取更完整的图片
- 用Django和South重命名一个应用程序
- 如何将模型从一个django应用程序迁移到新的应用程序中?
- 如何更改Django应用程序的名称?
- 使用Django South向后迁移
- 使用Django / South重命名模型最简单的方法?
- Python代码 (感谢A.Raouf )自动执行上述步骤(未经testing的代码,您已被警告!
Django 1.7中的新function是一个存储configuration并提供反省的应用程序registry。 这个机器让你改变几个应用程序的属性。
我要说的重点是,重命名应用程序并不总是必要的:通过应用程序configuration,可以解决冲突的应用程序。 但是,如果你的应用需要友好的命名,也是如此。
作为一个例子,我想命名我的民意调查应用程序“来自用户的反馈”。 它是这样的:
 在polls目录中创build一个apps.py文件: 
 from django.apps import AppConfig class PollsConfig(AppConfig): name = 'polls' verbose_name = "Feedback from users" 
 添加默认的应用程序configuration到您的polls/__init__.py : 
 default_app_config = 'polls.apps.PollsConfig' 
有关更多应用程序configuration: https : //docs.djangoproject.com/en/1.7/ref/applications/
如果您正在使用PyCharm并且项目在重命名后停止工作:
- 编辑运行/debuggingconfiguration并更改环境variablesDJANGO_SETTINGS_MODULE,因为它包含您的项目名称。
- 转到设置/语言和框架/ Django并更新设置文件的位置。