Use CLI commands to generate:
- basic create, update, list, detail views
- urlpatterns from views with REST like path urls
- form, table, detail templates (Bootstrap and django-crispy-forms by default)
all commands will respect (will not change) existing code
# pip
pip install django-hogwarts
# poetry
poetry add django-hogwarts
add hogwarts
to your INSTALLED_APPS
:
INSTALLED_APPS = [
...
"hogwarts"
]
Check this to know what urls will be generated
Generates paths for views from views.py
python manage.py genurls <your-app-name>
Arguments:
--force-app-name
,fan
override app_name variable in urls.py--override
,-o
fully overrides existing code in urls.py (previous code will be deleted)--single-import
,-s
instead of importing individual view, imports just modulefrom . import views
Generates create, update, detail, list views for model. Checkout the demo
python manage.py genviews <your-app-name> <model-name>
Arguments
--smart-mode
,-s
adds login required, sets user for CreateView and checks if client is owner of object in UpdateView--model-is-namespace
,-mn
adds success_url with name model as namespace--file
,-f
specify view file (example: "views/posts_view.py" or "new_views.py") in your app
It generates tests from urls.py for CRUD generic views only
python manage.py gentests <your-app-name>
Generates templates from template_name
s from views from given app
django-crispy-forms and crispy-bootstrap5 packages are required
python manage.py gentemplates <your-app-name>
Want to create own scaffolding templates?
- create folder, copy and customize from this templates
- add that folder to setting
HOGWARTS_SCAFFOLD_FOLDER = "<your-folder>"
Generates views, urls and templates for given app (every model in app)
python manage.py scaffold <your-app-name>
- tests generator
- maybe rest-framework support (let me know in issues)
Before all create config folder and copy everything from example_config to config folder