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.x
- 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 util 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 Historico de modificações da instância
SerializerModel
Modelo com o metodo 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. util para se usar em urls ou referencias nominais
TimestampedModel
Modelo com os campos Datetime, created_at and updated_at. Uteis para controlar quando uma instancia foi criada ou aterada.
UUIDModel
Modelo que usa o campo id como um UUID. Util 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)
Examplo 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 facil recuperação
Você pode instalar o Django Models usando pip:
$ pip install django-models
Se preferir instalar usando o codigo, pegue o endereço do repositorio git do GitHub e rode o setup.py
$ git clone [email protected]:rhenter/django_models.git
$ cd django_models
$ python setup.py install
To 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 ultima versão da documento do django-models
em GitHub Pages
Por favor envie pull requests, são muito apreciados.
- Faço o Fork do repositorio 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