--
Ticket URL: <https://code.djangoproject.com/ticket/18296>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* needs_better_patch: => 0
* stage: Unreviewed => Accepted
* needs_tests: => 0
* needs_docs: => 0
--
Ticket URL: <https://code.djangoproject.com/ticket/18296#comment:1>
* owner: nobody => vanessagomes
--
Ticket URL: <https://code.djangoproject.com/ticket/18296#comment:2>
* owner: vanessagomes =>
--
Ticket URL: <https://code.djangoproject.com/ticket/18296#comment:3>
* owner: => vanessagomes
--
Ticket URL: <https://code.djangoproject.com/ticket/18296#comment:4>
Comment (by SmileyChris):
I agree that it's pretty unintuitive.
Both commands use the same base class, but it doesn't take into acount
that creating a project involves creating a workspace containing the
project module, whereas an app is nothing *but* the module -- you can't
put an app named 'app1' in anything but an app1 directory.
--
Ticket URL: <https://code.djangoproject.com/ticket/18296#comment:5>
Comment (by SmileyChris):
Talking with Vanessa, we teased out the backwards incompatibilities of
always creating the app folder.
One solution is to only create the app folder if the target folder name
differs. This means that we keep backwards compatibility, but at the cost
of less consistent behaviour.
The other one is that we just assume the command should always create the
app folder. The easiest way to do this would be to move the contents of
`django/conf/template` to `django/conf/template/app_name`. This would
change the format from that implemented by any existing third-party app
templates, but that's not the end of the world.
I'm leaning towards simply moving the app templates.
--
Ticket URL: <https://code.djangoproject.com/ticket/18296#comment:6>
* cc: vanessagomes (added)
* has_patch: 0 => 1
* easy: 1 => 0
Comment:
It was created a method who get the target's directory. And in
startapp.py, the get_target_dir() was overrided to deal with this special
issue.
So, when you use
{{{
python manage.py startapp myapp1
}}}
or
{{{
python manage.py startapp myapp2 myproject
}}}
It's working well.
--
Ticket URL: <https://code.djangoproject.com/ticket/18296#comment:7>
* needs_better_patch: 0 => 1
Comment:
Why is the get_backend_info stuff in the diff? It's totally unrelated. You
might have accidentally left another patch in there.
--
Ticket URL: <https://code.djangoproject.com/ticket/18296#comment:8>
* cc: vanessagomes (removed)
* needs_better_patch: 1 => 0
Comment:
I replaced the old patch, and Now we have the right patch.
--
Ticket URL: <https://code.djangoproject.com/ticket/18296#comment:9>
* needs_tests: 0 => 1
Comment:
Thanks for the work on this.
To be clear, this is not a bug. For the currently documented behavior,
this should never work:
{{{
(django-dev)element:tmp$ django-admin.py startproject myproject
(django-dev)element:tmp$ cd myproject
(django-dev)element:myproject$ ./manage.py startapp myapp myproject
}}}
Because the destination argument to startapp should be a folder *into
which* the app package contents are injected, not a containing folder, if
that sequence ran without error, it would result in an app and a project
inside the same python package (sharing a single __init__, having a
models.py next to a settings.py etc).
The docs are: "If the optional destination is provided, Django will use
that existing directory rather than creating a new one. You can use '.' to
denote the current working directory."
If you instead meant:
{{{
./manage.py startapp myapp myproject/somedir
}}}
you instead get an error about the directory not existing and to create it
first - I'm not sure that Django shouldn't just create it if it doesn't
exist - that would be a different ticket.
If you see a way to clarify the docs on this, perhaps a documentation
ticket could be opened as well?
I see doing:
{{{
cd myproject
../manage.py startapp myapp
or
django-admin.py startapp myapp
}}}
as preferable to a backwards incompatible design change as proposed by the
patch - but that is getting into DDN territory...
--
Ticket URL: <https://code.djangoproject.com/ticket/18296#comment:10>
* cc: vanessagomes (added)
Comment:
I think we should open a new ticket about the docs, so we can discuss if
we should change a little bit of...
--
Ticket URL: <https://code.djangoproject.com/ticket/18296#comment:11>
Comment (by anonymous):
this link might be useful to Create an app in a sub-directory :
http://stackoverflow.com/questions/12841565/django-cant-create-app-in-
subfolder
--
Ticket URL: <https://code.djangoproject.com/ticket/18296#comment:12>
* status: new => closed
* version: 1.4 => 1.5
* resolution: => fixed
Comment:
{{{
mkdir Apps\newapp
python manage.py startapp NewApp Apps/newapp
}}}
{{{
python manage.py startapp myApp ./Apps/myApp
}}}
'''src:'''
http://stackoverflow.com/questions/12841565/django-cant-create-app-in-
subfolder
https://docs.djangoproject.com/en/1.4/ref/django-admin/#startapp-appname-
destination
--
Ticket URL: <https://code.djangoproject.com/ticket/18296#comment:13>
* status: closed => new
* resolution: fixed =>
Comment:
The discussion above contains several ideas that weren't taken into
account or rejected; the ticket isn't fixed until we make a decision.
--
Ticket URL: <https://code.djangoproject.com/ticket/18296#comment:14>