Skip to main content

Tiny app to provide basic behaviors for django models.

Project description

Latest Version on PyPI Supported Python versions TravisCI status

Tiny app to provide basic behaviors for django models, like:

  • Timestampable

  • Publishable

  • SoftDeletable

  • Cacheable

Installation

From PyPI:

$ pip install django-basic-models-behaviors

Usage

PublishableModel

Here is an example of Article using PublishableModel:

from basic_models_behaviors import models as behaviors
from django.db import models

class Article(behaviors.PublishableModel):
    title = models.CharField(max_length=255)
    contents = models.TextField()

Then:

>>> article = Article(title='Foo', contents='Lorem lipsum')
>>> article.publish()
>>> article.is_published()
True
>>> article.unpublish()
>>> article.is_published()
False
>>> article.is_not_published()
True

SoftDeletableModel

SoftDeletableModel behavior will add deleted_at field in set the current timestamp instead of delete the object. force_delete() will actually delete the model.

In your models.py:

from basic_models_behaviors import models as behaviors
from django.db import models

class Article(behaviors.SoftDeletableModel):
    title = models.CharField(max_length=255)
    contents = models.TextField()

Then:

>>> from models import Article
>>> article = Article(title='foo', contents='Lorem lipsum')
>>> article.delete()
>>> article.has_been_deleted()
True
>>> article.undelete()
>>> article.has_been_deleted()
False
>>> article.force_delete()

Tests

Run tests:

$ pip install -r tests/requirements.txt
$ py.test --ds=tests.settings tests

Authors

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-basic-models-behaviors-0.6.0.tar.gz (7.4 kB view details)

Uploaded Source

File details

Details for the file django-basic-models-behaviors-0.6.0.tar.gz.

File metadata

File hashes

Hashes for django-basic-models-behaviors-0.6.0.tar.gz
Algorithm Hash digest
SHA256 61ebe71c48c6e85d01ceb2b0b6d9e59baea97d1508c9f5f7103ce087384047ef
MD5 ae68ad57ff615cbe8b4ede72245ae0d9
BLAKE2b-256 7b65a0d83bd0a36ffa9203697c312b6624abb5383dabf7635284d7c8fb5f0cba

See more details on using hashes here.

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