Github:
dr-scaffold é uma lib para criar models e uma API simples em Django REST framework.
Experimentando e criando um projeto do zero
python -m venv .venv
source .venv/bin/activate
pip install dr-scaffold djangorestframework django-extensions python-decouple
Crie um arquivo .env
cat << EOF > .env
SECRET_KEY=my-super-secret-key-dev-only
EOF
Crie um novo projeto.
django-admin startproject backend .
Edite settings.py
# settings.py
from decouple import config
SECRET_KEY = config('SECRET_KEY')
INSTALLED_APPS = [
...
'rest_framework',
'dr_scaffold',
]
Exemplo 1
Rodando o comando dr_scaffold
python manage.py dr_scaffold blog Author name:charfield
python manage.py dr_scaffold blog Post body:textfield author:foreignkey:Author
Edite settings.py
# settings.py
INSTALLED_APPS = [
...
'rest_framework',
'dr_scaffold',
'blog', # <--
]
Edite urls.py
# urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('blog/', include('blog.urls')),
path('admin/', admin.site.urls),
]
python manage.py makemigrations
python manage.py migrate
Exemplo 2
python manage.py dr_scaffold product Product title:charfield price:decimalfield
python manage.py dr_scaffold ecommerce Order nf:charfield
python manage.py dr_scaffold ecommerce OrderItems \
order:foreignkey:Order \
product:foreignkey:Product \
quantity:integerfield \
price:decimalfield
Edite settings.py
INSTALLED_APPS = [
...
'rest_framework',
'dr_scaffold',
'blog', # <--
'product', # <--
'ecommerce', # <--
]
Edite urls.py
...
path('product/', include('product.urls')),
path('ecommerce/', include('ecommerce.urls')),
...
Não se esqueça de editar ecommerce/models.py
from product.models import Product
python manage.py makemigrations
python manage.py migrate