# Createapp with crud

**URL:** <https://forum.djangoproject.com/t/createapp-with-crud/33749>\
**Category:** Django Internals\
**Created:** [August 11, 2024, 7:53am UTC](https://forum.djangoproject.com/t/createapp-with-crud/33749 "2024-08-11T07:53:51Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![adamchainz](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/adamchainz/32/26_2.png) [@adamchainz](https://forum.djangoproject.com/u/adamchainz)\
**Post date:** [August 11, 2024, 8:12pm UTC](https://forum.djangoproject.com/t/createapp-with-crud/33749/5 "2024-08-11T20:12:29Z")

</div>

Yeah, cookiecutter solutions are good here because they let you pick one for your project. Django isn’t particularly opinionated on how you lay out your code, so it would be hard to define a template useful for everyone.

Also, `startapp` takes a `--template` option, so you’re free to use a template for your apps: [django-admin and manage.py | Django documentation | Django](https://docs.djangoproject.com/en/5.1/ref/django-admin/#startapp) . (And `startproject` too.)

The idea of expanding the templates has been discussed many times. Most recently, the addition of a `urls.py` file to `startapp` in [Updating the default startapp template - #35 by KenWhitesell](https://forum.djangoproject.com/t/updating-the-default-startapp-template/24193/35) . The general consensus is that the default templates shouldn’t create too much, because practices differ between projects. Instead, using custom templates (or a package) is how to get the code generation that you want.

---

_[View the full topic](https://forum.djangoproject.com/t/createapp-with-crud/33749)._
