Skip to main content

Django utilities for codegen and DX improvement

Project description

Django hogwarts 🧙‍♂️

Management commands to generate views, urls and templates

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


Installation

# pip
pip install django-hogwarts

# poetry
poetry add django-hogwarts

add hogwarts to your INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    "hogwarts"
]

Usage

Check this to know what urls will be generated

Generate urls.py

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

Generate views.py

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

Generate tests.py

It generates tests from urls.py for CRUD generic views only

python manage.py gentests <your-app-name>

Generate templates

Generates templates from template_names 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?

  1. create folder, copy and customize from this templates
  2. add that folder to setting HOGWARTS_SCAFFOLD_FOLDER = "<your-folder>"

Scaffolding

Generates views, urls and templates for given app (every model in app)

python manage.py scaffold <your-app-name>

Roadmap

  • tests generator
  • maybe rest-framework support (let me know in issues)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_hogwarts-0.9.0.tar.gz (23.7 kB view hashes)

Uploaded Source

Built Distribution

django_hogwarts-0.9.0-py3-none-any.whl (37.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page