2011-03-23 51 views
9

Pienso que indica un nuevo proyecto Django y que tienen que elegir un nombre de proyecto ahora, así que puede escribir:Django: la función del nombre del proyecto

djangoadmin startproject <something> 

Esto plantea dudas, no estoy seguro del nombre, y creo que podría querer cambiarlo en el futuro. Entonces, tengo dos preguntas:

  • ¿Qué papel juega el nombre del proyecto en el código y la implementación del proyecto?
  • ¿Qué pasos debo seguir para cambiar el nombre de mi proyecto?

¡Gracias!

Respuesta

3

El nombre del proyecto principal se utiliza como base para su espacio de nombres.

Por defecto, tendrá en la línea settings.py: "ROOT_URLCONF = 'something.urls'".

Para cambiar el nombre de un proyecto, debe cambiar cada importación que se refiera a él.

Por supuesto, siempre puede usar módulos sin el prefijo 'algo', entonces debe asegurarse de que no haya conflicto de nombre/espacio de nombres entre los módulos. Estoy usando esta opción, porque puedo tener el mismo código en algunas copias sin problemas adicionales.

0

Tarde a esta fiesta, pero para referencia futura esto puede ayudar a alguien. Solo tuve que cambiar el nombre de un proyecto porque chocó con el nombre de una aplicación de terceros. ¡Es más fácil cambiar el nombre de un proyecto que el nombre de una aplicación! (Django 1.11)

estructura de carpetas

project/ 
    manage.py 
    project/ 
     settings.py 
     urls.py 
     wsgi.py 
    venv/ 
  1. Si se utiliza un entorno virtual en el venv, generar una puesta al día requirements.txt con pip freeze
  2. Cambiar el nombre de los dos project/ carpetas a newproject
  3. Cambio project a newproject en los archivos de Python:

manage.py, busque DJANGO_SETTINGS_MODULE

settings.py, busque DJANGO_SETTINGS_MODULE y WSGI_APPLICATION, y un comentario. Puede y debe dejar el nombre de la base de datos y el usuario de la base de datos sin cambios, suponiendo que desea conservar los datos.

urls.py, en una cadena triple citado

wsgi.py, DJANGO_SETTINGS_MODULE más un comentario

  1. Si se utiliza un entorno virtual, necesitas recrearlo. Cambié el nombre a venv por old.venv, luego a virtualenv-3 venv, luego uso pip install y el archivo de requisitos que generó en 1. Trash old.venv cuando está seguro de que el nuevo está funcionando AOK.

  2. /path/to/project también ofrecerá en los archivos de configuración del sistema, tales como /etc/nginx y un archivo .service para gunicorn, que necesitará cambiar a /path/to/newproject.

  3. Reinicia el servidor y prueba. Debería estar funcionando.

Ahora puede agregar una aplicación llamada project a su INSTALLED_APPS!

Ahora sé que es una buena idea llamar a los proyectos internos de Django ${my_org_name}_something, o similar, para que no entren en conflicto con aplicaciones de terceros.

Cuestiones relacionadas