﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
30616	CommandTemplate Behavior Is Inconsistent.	John Gooding	nobody	"Moving this here per Adam Johnson's request on the [https://groups.google.com/d/msg/django-developers/AfhN_mVYZrg/m0Wrt3WICQAJ developer forum].

To be clear, I am not saying there is a bug. It does what it is programmed to do. I am saying the expected behavior of the API / CLI / whatever you want to call it is inconsistent.

I am not going to get into an argument of what a ""proper"" django structure is, etc. I want to focus purely on the behavior of the command.

A more ""normal"" setup might look like this:

{{{
/repository
  manage.py
  /project
    settings.py
    urls.py
    etc..
  /polls
    models.py
    etc...
}}}

When you run `python manage.py startapp polls` from the same directory as manage.py, it will create the polls directory for you, normal expected behavior.

Another, equally as valid setup looks like this:

{{{
repository/
  manage.py
  /project
    settings.py
    urls.py
    etc...
    /polls
      models.py
      etc...
    /my_app_2
      models.py
      etc...
}}}

Where all of the apps live in the project directory, or perhaps some other directory. Now if you try to execute `python manage.py startapp polls project`, it will complain that the directory doesn't exist and that you need to create it first. However if you `cd` into /project, and run `python ../manage.py startapp polls`, it will create the directory for you, even though it doesn't exist.

My ultimate point is this, the behavior of the command should not depend on where it is ran. It should only care if the directory already exists or not, which it does check, but the applied behavior of that check is different depending on if you're in the  [https://github.com/django/django/blob/53209f78302a639032afabf5326d28d4ddd9d03c/django/core/management/templates.py#L68 line 68 if block] or the  [https://github.com/django/django/blob/53209f78302a639032afabf5326d28d4ddd9d03c/django/core/management/templates.py#L76 line 76 else block]. The applied behavior ought to be the same, regardless of where the command is ran from."	Bug	closed	Core (Management commands)	dev	Normal	invalid			Unreviewed	0	0	0	0	0	0
