在Django中更改项目名称

Mel*_*art 7 python django

从我改变了我的Django项目的名称oldnamenewname使用Pycharm的重构>重命名。我遍历该项目,似乎到处都更改了名称。但是当我尝试运行服务器时,这就是我得到的,

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'
Run Code Online (Sandbox Code Playgroud)

有人可以帮我弄这个吗?

Kus*_*era 16

我在更改项目名称时遇到了同样的错误,问题是您正在使用PyCharm运行服务器,不是吗?希望您使用PyCharm和 Django 支持创建了您的项目。首先将以下设置添加到您的wsgi.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'
Run Code Online (Sandbox Code Playgroud)

ROOT_URLCONF = 'newname.urls
WSGI_APPLICATION = 'newname.wsgi.application'
Run Code Online (Sandbox Code Playgroud)

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

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

    Pycharm 项目配置

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

    在此处输入图片说明

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

    在此处输入图片说明

就是这样。


小智 6

确保在 settings.py 、 wsgi.py 和 manage.py 中更改名称


Kev*_*dez 3

Django 应用程序有一个主要位置来获取其应用程序名称及其位置

myappname/apps.py

from django.apps import AppConfig


class StorefrontConfig(AppConfig):
    name = 'myappname'
Run Code Online (Sandbox Code Playgroud)

然后在里面settings.py你可以找到

INSTALLED_APPS = [
    'myappname',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

]
Run Code Online (Sandbox Code Playgroud)

一旦您更改了应用程序的名称,您就需要不断地更改settings.pyapps.py

  • 但是,这不是试图解决不同的问题吗?\n 项目名称与应用程序名称! (2认同)