python - 在 Django 中更改项目名称

标签 python django

我使用 Pycharm 的重构 > 重命名将我的 django 项目的名称从 oldname 更改为 newname。我已经搜索了该项目,它似乎到处都更改了名称。但是当我尝试运行服务器时,这是我得到的,

Traceback (most recent call last):
  File "/Users/melissa/Dropbox/newname/manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/melissa/Dropbox/newname/env/lib/python3.7/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "/Users/melissa/Dropbox/newname/env/lib/python3.7/site-packages/django/core/management/__init__.py", line 317, in execute
    settings.INSTALLED_APPS
  File "/Users/melissa/Dropbox/newname/env/lib/python3.7/site-packages/django/conf/__init__.py", line 56, in __getattr__
    self._setup(name)
  File "/Users/melissa/Dropbox/newname/env/lib/python3.7/site-packages/django/conf/__init__.py", line 43, in _setup
    self._wrapped = Settings(settings_module)
  File "/Users/melissa/Dropbox/newname/env/lib/python3.7/site-packages/django/conf/__init__.py", line 106, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'oldname'

有人可以帮我解决这个问题吗?

最佳答案

我在更改项目名称时遇到了同样的错误,问题是您正在使用 PyCharm 运行服务器,不是吗?希望您使用 PyCharm 创建了项目与 Django 支持。首先将以下设置添加到您的 wsgi.pyasgi.pymanage.py 文件中,

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'oldname.settings')

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'newname.settings')

然后转到您的 settings.py 并更改以下设置,

ROOT_URLCONF = 'oldname.urls
WSGI_APPLICATION = 'oldname.wsgi.application'

ROOT_URLCONF = 'newname.urls
WSGI_APPLICATION = 'newname.wsgi.application'

如果你没有得到 PyCharm的 Django 支持,应该执行此解决方案,否则您将再次遇到相同的错误。您可以使用其他终端来尝试此操作而无需获取 PyCharm的 Django 支持并使用 python manage.py runserver 命令运行您的服务器。如果您的项目没有任何其他错误,您可以看到此解决方案正在运行。然后我意识到 PyCharm 有问题的 Django Support,我提供的帮助仅适用于那些正在使用 PyCharm 的人的 Django 支持。

  1. 转到您的项目并单击“编辑配置设置”。

    Pycharm Project Configuration

  2. 您可以看到环境变量仍然具有以前的值,只需单击角落的图标即可编辑 DJANGO_SETTINGS_MODULE 变量。

    enter image description here

  3. 然后添加您的新项目名称newname,其中包含settings.py 文件。

    enter image description here

就是这样。

关于python - 在 Django 中更改项目名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53024807/

相关文章:

python - 如何在 Django 过滤器的 kwargs 中传递用户名?

jquery - 在 formset 中动态创建 django 表单,就像使用 jquery 在 django admin 中的内联表单一样

python - 如何使用 python 编写 VMS 守护进程?

python - 在字符串上调用 str() 的成本?

Python:根据用户输入打印一个或多个文件(副本)

python - Django 过滤特定的 QuerySet.values()

python - 如何通过 django-registration 使用自定义配置文件

python - Django 教程 NoReverseMatch

python - 如何添加审批工作流程 OpenERP 7

python - 如何创建一个元组,其中每个成员都通过表达式进行比较?