Skip to main content
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

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.

Release history Release notifications | RSS feed

This release

0.6.0 This release

1 file

0.5.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page