Problem with adam's solutions is then where do you place the project's urls.py, asgi.py and wsgi.py? Normally they are in the project dir next to settings.py. With regards to two dirs with same name, I call the outer dir 'src', which usually has related files/dirs for the project next to it, but are not part of the python source, e.g. requirements.txt
On Friday, 22 April 2022 at 19:31:03 UTC+2 fli...@peregrinesalon.com wrote: > Thanks for the excellent feedback, folks. It does sound like we've built a > consensus for merging this PR, with other iterative improvements possible > later. I like the template idea, but also know that the vast majority of > newcomers are going to go with the default. > > Once I get the go-ahead from someone with Merger permissions, I'll go > ahead and make the changes necessary to the documentation (such as the > Tutorial) so we can complete this. > > On Thursday, April 21, 2022 at 6:01:17 PM UTC-4 pyt...@ian.feete.org > wrote: > >> I want to add that I think either proposed change here would be an >> improvement and that I'd prefer not to see this idea die because of >> bikeshedding over the best option. >> >> Regards, >> Ian >> >> On Thu, 21 Apr 2022 at 19:21, ome chukwuemeka <omeco4...@gmail.com> >> wrote: >> >>> I think this is a good suggestion! >>> >>> On Thu, Apr 21, 2022, 7:08 PM Albert <al...@interia.eu> wrote: >>> >>>> It is possible to do in current version of Django with two lines of >>>> code: >>>> >>>> mkdir my_project >>>> >>>> django-admin startproject config my_project >>>> >>>> I have been working for many companies that use Django and I have seen >>>> that each ot them has their own structure of project. >>>> >>>> And usually project is created once per couple of months, so I don't >>>> see advantages of changing project structure. >>>> >>>> Regards, >>>> >>>> Albert >>>> >>>> Temat: Re: Improvements to the startproject template >>>> >>>> As there are different preferences and some see the change as worse >>>> than the default and there is already a way to change the template for >>>> startproject, wouldn't it be easier to provide different templates and >>>> list >>>> them in the documentation, so that they can be used with the --template >>>> argument? With a short section about each template and the pros and the >>>> cons, and for what kind of project one is better suited. >>>> >>>> Maybe the three top templates could be shipped directly with django, so >>>> that users could choose one with --template=simple, --template=nested or >>>> --template=config or something in that direction. >>>> On Thursday, April 21, 2022 at 11:16:23 AM UTC+2 ator...@redhat.com >>>> wrote: >>>> >>>>> I personally dislike Adam's suggestion and feel like it makes it worse >>>>> than the current default, but to each their own. >>>>> >>>>> I do prefer the proposed solution of the config directory, I am >>>>> working on two django projects in parallel and one follows the proposed >>>>> config scheme and the other doesn't (uses the default) and I find the >>>>> proposed config scheme more natural to use and navigate, so that's a +1 >>>>> from me too >>>>> >>>>> On Thursday, April 21, 2022 at 5:10:06 AM UTC+2 pem...@gmail.com >>>>> wrote: >>>>> >>>>>> For what it's worth, this is the (general) layout I've used for the >>>>>> past 8+ years of my professional Django development. >>>>>> >>>>>> Arthur >>>>>> >>>>>> On Wed, 20 Apr 2022 at 15:22, Olivier Dalang <olivier...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> +1 for Adam's suggestion, I use it as well and like it very much. >>>>>>> >>>>>>> > root folder >>>>>>> - manage.py >>>>>>> - ... >>>>>>> > myproject >>>>>>> - __init__.py >>>>>>> - settings.py >>>>>>> - urls.py >>>>>>> - ... >>>>>>> > myapp >>>>>>> - __init__.py >>>>>>> - models.py >>>>>>> - ... >>>>>>> >>>>>>> Pros: >>>>>>> - everything is well namespaced under myproject >>>>>>> (`myproject.settings`, quite straightforward) >>>>>>> - makes it clear that `settings.py`, `urls.py`, etc. concern the >>>>>>> project as a whole, and not just an app. >>>>>>> - also nice in settings.INSTALLED_APPS (`myproject.myapp` makes it >>>>>>> clear that myapp is part of this project) >>>>>>> - it leaves the root level for stuff like .gitignore, db.sqlite, >>>>>>> etc, so the actual source stays clean from such files. >>>>>>> - having a parent package allows (does not require) relative imports >>>>>>> across modules of the same project, which more clearly conveys that >>>>>>> such >>>>>>> apps are tightly coupled >>>>>>> - with manage.py still in the root folder, you don't need to cd into >>>>>>> any folder to start working >>>>>>> >>>>>>> I use it all the time. >>>>>>> >>>>>>> Cheers, >>>>>>> >>>>>>> Olivier >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> Le mer. 20 avr. 2022 à 18:50, Tom Carrick <t...@carrick.eu> a >>>>>>> écrit : >>>>>>> >>>>>>>> I prefer Adam's suggestion in the forum post as it lets you >>>>>>>> namespace everything under your project name nicely and avoids package >>>>>>>> name >>>>>>>> collisions, although it doesn't solve the problem of having two >>>>>>>> directories >>>>>>>> with the same name by default. >>>>>>>> >>>>>>>> That said, either would be an improvement on what we have so I'm in >>>>>>>> favour of either approach over doing nothing. >>>>>>>> >>>>>>>> Cheers, >>>>>>>> Tom >>>>>>>> >>>>>>>> On Wed, 20 Apr 2022 at 16:49, John M <john-...@martinhome.org.uk> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> I do exactly this for every new Django project, so it's +1 from me >>>>>>>>> as well. >>>>>>>>> >>>>>>>>> John >>>>>>>>> On 20/04/2022 12:01, da...@springbourne-tech.com wrote: >>>>>>>>> >>>>>>>>> +1 for me - this would be really useful. >>>>>>>>> >>>>>>>>> On Monday, April 18, 2022 at 9:02:02 PM UTC+1 pyt...@ian.feete.org >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi Tim, >>>>>>>>>> >>>>>>>>>> This feels like a good idea to me. >>>>>>>>>> >>>>>>>>>> Regards, >>>>>>>>>> Ian >>>>>>>>>> >>>>>>>>>> On Mon, 18 Apr 2022 at 18:17, Tim Allen < >>>>>>>>>> fli...@peregrinesalon.com> wrote: >>>>>>>>>> >>>>>>>>>>> Greetings, friends! >>>>>>>>>>> >>>>>>>>>>> I've issued a PR that makes two changes to the >>>>>>>>>>> `startproject` template: >>>>>>>>>>> >>>>>>>>>>> - instead of putting configuration files such >>>>>>>>>>> as `settings.py`, `wsgi.py`, and the >>>>>>>>>>> root `urls.py` in `my_project/my_project`, they are created >>>>>>>>>>> in `my_project/config` >>>>>>>>>>> - start the project with a custom User model app, `users` >>>>>>>>>>> >>>>>>>>>>> Over the years, I've taught or tutored over 100 Djangonauts >>>>>>>>>>> starting their first project. Having to distinguish between two >>>>>>>>>>> directories >>>>>>>>>>> with the same name is a constant pain point in the teaching process >>>>>>>>>>> - "cd >>>>>>>>>>> into my_project ... no, the other one!" >>>>>>>>>>> >>>>>>>>>>> - The `config` option seemed to be the consensus from this >>>>>>>>>>> thread in the forum: Django New Project Structure/Name - >>>>>>>>>>> Using Django - Django Forum (djangoproject.com) >>>>>>>>>>> >>>>>>>>>>> <https://forum.djangoproject.com/t/django-new-project-structure-name/9987> >>>>>>>>>>> >>>>>>>>>>> - Ticket: https://github.com/django/django/pull/15609 >>>>>>>>>>> >>>>>>>>>>> It is sometimes better to show rather than tell, so following >>>>>>>>>>> our own documentation and including a custom User model with the >>>>>>>>>>> initial >>>>>>>>>>> project template reinforces the best practice that we explicitly >>>>>>>>>>> point out >>>>>>>>>>> in the documentation. >>>>>>>>>>> >>>>>>>>>>> - Ticket: #27909 (Use AUTH_USER_MODEL in startproject >>>>>>>>>>> template) – Django (djangoproject.com) >>>>>>>>>>> <https://code.djangoproject.com/ticket/27909> >>>>>>>>>>> - Avoids ever having this come up again: >>>>>>>>>>> >>>>>>>>>>> https://www.caktusgroup.com/blog/2019/04/26/how-switch-custom-django-user-model-mid-project/ >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Here's a link to the PR: >>>>>>>>>>> https://github.com/django/django/pull/15609 >>>>>>>>>>> >>>>>>>>>>> My apologies for not starting with a discussion first. I'm an >>>>>>>>>>> infrequent contributor to the Django codebase! >>>>>>>>>>> >>>>>>>>>>> Regards, >>>>>>>>>>> >>>>>>>>>>> Tim >>>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>> Google Groups "Django developers (Contributions to Django itself)" >>>>>>>>>>> group. >>>>>>>>>>> To unsubscribe from this group and stop receiving emails from >>>>>>>>>>> it, send an email to django-develop...@googlegroups.com. >>>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>> https://groups.google.com/d/msgid/django-developers/33cb49d0-2469-47c0-920e-9501245c5a27n%40googlegroups.com >>>>>>>>>>> >>>>>>>>>>> <https://groups.google.com/d/msgid/django-developers/33cb49d0-2469-47c0-920e-9501245c5a27n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>> . >>>>>>>>>>> >>>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "Django developers (Contributions to Django itself)" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to django-develop...@googlegroups.com. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/django-developers/a184bfc1-e3fb-4bd7-8378-292194e52595n%40googlegroups.com >>>>>>>>> >>>>>>>>> <https://groups.google.com/d/msgid/django-developers/a184bfc1-e3fb-4bd7-8378-292194e52595n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "Django developers (Contributions to Django itself)" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to django-develop...@googlegroups.com. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/django-developers/ffb8a027-d5c7-53b4-1ea7-c9f687b8c80d%40martinhome.org.uk >>>>>>>>> >>>>>>>>> <https://groups.google.com/d/msgid/django-developers/ffb8a027-d5c7-53b4-1ea7-c9f687b8c80d%40martinhome.org.uk?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "Django developers (Contributions to Django itself)" group. >>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>> send an email to django-develop...@googlegroups.com. >>>>>>>> To view this discussion on the web visit >>>>>>>> https://groups.google.com/d/msgid/django-developers/CAHoz%3DMaFmJYbV2mgek4WivuBepJgt46d6cgcD-Vtp2MBspcFnA%40mail.gmail.com >>>>>>>> >>>>>>>> <https://groups.google.com/d/msgid/django-developers/CAHoz%3DMaFmJYbV2mgek4WivuBepJgt46d6cgcD-Vtp2MBspcFnA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>> . >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Django developers (Contributions to Django itself)" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to django-develop...@googlegroups.com. >>>>>>> >>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/django-developers/CAExk7p1tnn5xx9bQEKfbZMjdajJ2TSH39tVWujSgk3vtOnCTYA%40mail.gmail.com >>>>>>> >>>>>>> <https://groups.google.com/d/msgid/django-developers/CAExk7p1tnn5xx9bQEKfbZMjdajJ2TSH39tVWujSgk3vtOnCTYA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Django developers (Contributions to Django itself)" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to django-develop...@googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/django-developers/7acdab41-6246-49e3-9b21-fcce4a7690f5n%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/django-developers/7acdab41-6246-49e3-9b21-fcce4a7690f5n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Django developers (Contributions to Django itself)" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to django-develop...@googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/django-developers/itdulrnhrftdumjfnjhn%40eumz >>>> >>>> <https://groups.google.com/d/msgid/django-developers/itdulrnhrftdumjfnjhn%40eumz?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Django developers (Contributions to Django itself)" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to django-develop...@googlegroups.com. >>> >> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/django-developers/CAKRDgxEubfbPdwf_stO1iiTrmqaVXFvgvK3aketjysduNY%3Df3g%40mail.gmail.com >>> >>> <https://groups.google.com/d/msgid/django-developers/CAKRDgxEubfbPdwf_stO1iiTrmqaVXFvgvK3aketjysduNY%3Df3g%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-developers+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/42033747-5159-44cd-9d4f-d6723197a26dn%40googlegroups.com.