Created
September 9, 2021 17:25
-
-
Save Marceloromeugoncalves/1ef6f50f0fd71d06d8843752e3bd1000 to your computer and use it in GitHub Desktop.
Exemplo - Django Automatic CRUD (https://www.youtube.com/watch?v=Z2GGIvelr-M&ab_channel=Developer.pe).
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Django Automatic CRUD. | |
#Instalação: pip install django-automatic-crud | |
#Verificação das dependências: pip freeze. | |
""" | |
asgiref==3.4.1 | |
Django==3.2.7 | |
django-automatic-crud==1.2.0 | |
et-xmlfile==1.1.0 | |
openpyxl==3.0.7 | |
pytz==2021.1 | |
sqlparse==0.4.1 | |
""" | |
#Criação do projeto Django. | |
#django-admin startproject project | |
#cd project para navegar para a pasta do projeto. | |
#Em settings.py adicionar automatic_crud no INSTALLED_APPS. | |
INSTALLED_APPS = [ | |
#... | |
'automatic_crud', | |
] | |
#Criação dos modelos. | |
#Para criar os modelos precisamos criar uma aplicação. | |
#django-admin startapp products | |
#Adicionar o app products no INSTALLED_APPS. | |
INSTALLED_APPS = [ | |
#... | |
'automatic_crud', | |
'products', | |
] | |
#Criação dos models. | |
#models.py | |
from django.db import models | |
from automatic_crud.models import BaseModel | |
""" | |
Campos extras que são criados nas classes que herdam de BaseModel: | |
- id | |
- model_state | |
- date_created | |
- date_modified | |
- date_deleted | |
model_state é usado dentro do Django Automatic CRUD para a exclusão lógica. | |
""" | |
class Category(BaseModel): | |
#Nome da categoria. | |
name = models.CharField("Categoria", max_length=50) | |
class Meta: | |
#Nome no singular. | |
verbose_name = 'Category' | |
#Nome no plural. | |
verbose_name_plural = 'Categories' | |
#String que representará a instância do objeto. | |
def __str__(self): | |
return self.name | |
#Geração de CRUDS Automáticos. | |
#project => urls.py | |
from django.contrib import admin | |
from django.urls import path | |
from django.urls import include | |
urlpatterns = [ | |
#Rota para a Administração do Django. | |
path('admin/', admin.site.urls), | |
#Configuração necessária para geração dos CURD's automáticos. | |
path('automatic-curd/', include('automatic_crud.urls')), | |
] | |
#Aplicando as migrações. | |
#python manage.py makemigrations | |
#python manage.py migrate | |
""" | |
Auto tentar acessar: http://127.0.0.1:8000/automatic-crud/ | |
admin/ | |
automatic-crud/products/category/list/ [name='products-category-list'] | |
automatic-crud/products/category/create/ [name='products-category-create'] | |
automatic-crud/products/category/detail/<int:pk>/ [name='products-category-detail'] | |
automatic-crud/products/category/update/<int:pk>/ [name='products-category-update'] | |
automatic-crud/products/category/logic-delete/<int:pk>/ [name='products-category-logic-delete'] | |
automatic-crud/products/category/direct-delete/<int:pk>/ [name='products-category-direct-delete'] | |
automatic-crud/products/category/excel-report/ [name='products-category-excel-report'] | |
automatic-crud/ajax-products/category/list/ [name='products-category-list-ajax'] | |
automatic-crud/ajax-products/category/create/ [name='products-category-create-ajax'] | |
automatic-crud/ajax-products/category/detail/<int:pk>/ [name='products-category-detail-ajax'] | |
automatic-crud/ajax-products/category/update/<int:pk>/ [name='products-category-update-ajax'] | |
automatic-crud/ajax-products/category/logic-delete/<int:pk>/ [name='products-category-logic-delete-ajax'] | |
automatic-crud/ajax-products/category/direct-delete/<int:pk>/ [name='products-category-direct-delete-ajax'] | |
automatic-crud/ajax-products/category/excel-report/ [name='products-category-excel-report-ajax'] | |
""" | |
#Configurando a pasta de templates. | |
TEMPLATES = [ | |
#... | |
'DIRS': ['templates'], | |
#... | |
] | |
#Tendo as rotas criadas de forma automática, basta irmos criando os templates. | |
""" | |
Tipos de Exclusão | |
- Lógica - O registro é apenas marcado como excluído. | |
- Direta - O registro é efetivamente excluído do banco de dados. | |
""" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Django Automatic CRUD.
O primeiro passo é criarmos a pasta do projeto e ativarmos o Virtual Environment. Daí, devemos abrir o terminal na pasta criada e instalar a dependência para o Django Automatic CRUD. Para instalar a dependência via pip temos que executar o comando
pip install django-automatic-crud
. Após a instalação poderemos verificar as dependências do projeto com o comandopip freeze
, que irá listar as seguintes dependências:Campos extras que são criados nas classes que herdam de BaseModel:
O campo model_state é usado dentro do Django Automatic CRUD para a exclusão lógica.
Rotas do Django Automatic CRUD:
Tipos de Exclusão