Django Models é uma biblioteca com vários Modelos úteis para Django para ajudá-lo a tornar seus templates inteligentes ou com menos código
- Python 3.8 ou mais novo
- Django 1.11 ou mais novo
ActiveModel
Modelo com campo boolean is_active
CodeModel
Modelo com um campo code que gera automaticamente um hash de 16 caracteres por padrão. Muito útil para identificar seu registro de forma mais humanizada
HistoryModel
Modelo que permite rastrear cada alteração feita na instância ao salvar para gerar um Histórico de modificações da instância
SerializerModel
Modelo com o método serialize que retorna um dict com todas as informações da instância sem precisar de um serializador configurado.
from django_models.models import SerializerModel
...
class YourModel(SerializerModel)
name = models.CharField(max_length=255)
...Uso
In[1]: from . import YourModel
In[2]: instance = YourModel.objects.first()
In[3]: user.serialize()
Out[3]: {'id': 1, 'name': 'primeiro registro', ...}SlugModel
Modelo com um campo slug. Útil para se usar em urls ou referências nominais
TimestampedModel
Modelo com os campos Datetime, created_at and updated_at. Úteis para controlar quando uma instância foi criada ou alterada.
UUIDModel
Modelo que usa o campo id como um UUID. Útil para poder ter um identificador único sem se preocupar com sequenciais.
- SignalsModel
Usando o SignalsModel, permite que você manipule ou execute um evento de acordo com os Signals do Django.
- Quando Salvar:
- pre_save (Antes de Salvar)
- post_save (Depois de Salvar)
- Quando Apagar:
- pre_delete (Antes de Apagar)
- post_delete (Depois de Apagar)
Exemplo usando o signal Pre-save
from django_models.models import SignalsModel
...
class YourModel(SignalsModel)
...
def pre_save(self):
do_something()SoftDeleteSignalModel Models
É o SignalsModel com soft delete implementado. Permite que nada que você apague seja realmente apagado do sistema e de fácil recuperação
Você pode instalar o Django Models usando pip:
$ pip install django-modelsSe preferir instalar usando o código, pegue o endereço do repositório git do GitHub e rode o setup.py
$ git clone git@github.com:rhenter/django_models.git
$ cd django_models
$ python setup.py installTo enable django_models in your project you need to add it to INSTALLED_APPS in your projects settings.py file:
Para habilitar o django_models no seu projeto você precisa adiciona-lo ao INSTALLED_APPS no arquivo settings.py do seu projeto:
INSTALLED_APPS = (
...
'django_models',
...
)Confira a última versão da documentação do django-models em GitHub Pages
Por favor envie pull requests, são muito apreciados.
- Faça o Fork do repositório repository no GitHub.
- Crie uma branch fora da master e commit as suas modificações.
- Instale as dependências.
pip install -r requirements-dev.txt - Instale o pre-commit.
pre-commit install - Rode os testes com
cd test-django-project; py.test -vv -s - Crie um Pull Request com a sua contribuição