Opened 4 years ago

Closed 4 years ago

#31849 closed Bug (wontfix)

django-admin startproject - Fails to create files after encountering CommandError

Reported by: iamdirk Owned by: nobody
Component: Core (Management commands) Version: 3.0
Severity: Normal Keywords: django-admin, startproject, CommandError, file creation, settings.py, asgi.py, Poetry
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by iamdirk)

Ubuntu 20.04 LTS, Python 3.8.3, Django 3.0.8, Poetry setup VENV

Inside a poetry generated virtual environment with only the following dependencies and their required dependencies:

[tool.poetry.dependencies]
python = "^3.8"
django = "~3.0"

I have a poetry initialized project setup, which has generated the following structure.

(devenv-demo-Iq-p0dca-py3.8) d@devpad:~/development/devenv_demo$ find .
.
./poetry.lock
./pyproject.toml
./tests
./tests/__init__.py
./tests/test_devenv_demo.py
./devenv_demo
./devenv_demo/__init__.py
./README.rst

The only overlapping file is inside our devenv_demo directory:

__init__.py

Which contains a single line of text:

__version__ = '0.1.0'


Upon running the following command we run into CommandError:

(devenv-demo-Iq-p0dca-py3.8) d@devpad:~/development/devenv_demo$ django-admin startproject devenv_demo .
CommandError: /home/d/development/devenv_demo/devenv_demo/__init__.py already exists. Overlaying a project into an existing directory won't replace conflicting files.

This still causes some of the template files to be created by startproject:

(devenv-demo-Iq-p0dca-py3.8) d@devpad:~/development/devenv_demo$ find .
.
./manage.py
./poetry.lock
./pyproject.toml
./tests
./tests/__init__.py
./tests/test_devenv_demo.py
./devenv_demo
./devenv_demo/urls.py
./devenv_demo/wsgi.py
./devenv_demo/__init__.py
./README.rst

However as it encounters the overlapping file it fails and stops creating files since we are still missing:

./devenv_demo/settings.py
./devenv_demo/asgi.py

According to: https://docs.djangoproject.com/en/3.0/intro/tutorial01/

Removing the conflicting file ensures complete normal functionality of 'django-admin startproject'.

Change History (2)

comment:1 by iamdirk, 4 years ago

Description: modified (diff)

comment:2 by Mariusz Felisiak, 4 years ago

Resolution: wontfix
Status: newclosed
Summary: django-admin startproject - Fails to create files after encountering CommandErrrordjango-admin startproject - Fails to create files after encountering CommandError

As far as I'm aware, a fast failure is an expected behavior in this case. We treat already existing files as a error, so there is no point in creating remaining files.

Note: See TracTickets for help on using tickets.
Back to Top