Skip to main content

Django Models

Para visualizar o README em português.

PyPI latest PyPI Version PyPI License GitHub Actions Status Coverage Docs Open Source? Yes!

Django Models is a Library with several useful Models for Django to help you make your templates smart or with less code

Requirements

  • Python 3.10 or later

  • Django 5.0 to 6.x

Features

Generic Models

  • ActiveModel

    Model with is_active boolean field

  • CodeModel

    Model with a code field that automatically generates a hash of 16 characters by default. Useful to identify your record in a more humane way

  • SerializerModel

    Model to return a dict with all data of your django instance without a serializer.

Example:

Your Model

from django_models.models import SerializerModel
...

class YourModel(SerializerModel)
    name = models.CharField(max_length=255)
    ...

Usage

In[1]: from . import YourModel
In[2]: instance = YourModel.objects.first()
In[3]: user.serialize()
Out[3]: {'id': 1, 'name': 'first record', ...}
  • SlugModel

    Model with a slug field. Useful to use in urls or nominal references

  • TimestampedModel

    Model with the DateTime, created_at and updated_at fields. Useful to control when any changes were made.

  • UUIDModel

    Model that uses the id field as a UUID. Useful to be able to have a unique identifier without worrying about sequences.

History models

  • HistoryModel Model that tracks each save to generate a Change History of a record

Signals Models

With SignalsModel it allows you to handle or execute an event according to Django’s Signals.

On Save:
  • pre_save (Before Saving)

  • post_save (After Saving)

On Delete:
  • pre_delete (Before Deleting)

  • post_delete (After Deleting)

Example using Pre-save signal

Note: This will be made before you save your model

from django_models.models import SignalsModel
...

class YourModel(SignalsModel)
    ...
    def pre_save(self):
        do_something()

Soft Delete Signal Model

  • SoftDeleteSignalModel Models

    It is the SignalsModel with soft delete implemented. Ensures that nothing you delete is really deleted from the system and easy to recover

How to install

Getting It

You can get Django Models by using pip:

$ pip install django-models

If you want to install it from source, grab the git repository from GitHub and run setup.py:

$ git clone git@github.com:rhenter/django_models.git
$ cd django_models
$ python setup.py install

Settings

To enable django_models in your project you need to add it to INSTALLED_APPS in your projects settings.py file:

INSTALLED_APPS = (
    ...
    'django_models',
    ...
)

Documentation

Check out the latest django-models documentation at GitHub Pages

Contributing

Please send pull requests, very much appreciated.

  1. Fork the repository on GitHub.

  2. Make a branch off of master and commit your changes to it.

  3. Install requirements. pip install -r requirements-dev.txt

  4. Install pre-commit. pre-commit install

  5. Run the tests with cd test-django-project; py.test -vv -s

  6. Create a Pull Request with your contribution

Metadata

Release files for django-models 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-models 1.1.0
File Size Uploaded
django_models-1.1.0.tar.gz 19.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-models 1.1.0
File Interpreter ABI Platform
django_models-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 38.7 kB

Release files / django_models-1.1.0.tar.gz

Download URL django_models-1.1.0.tar.gz
Size 19.8 kB
Tags Source
SHA-256 checksum
How to use checksums
7c9fd58b4a54e4998a290724f769c933ee926500e1f748bd7c3aeedae99ca954
BLAKE2b-256 checksum
How to use checksums
c5bed070974b708dc0cd38be507102519c2e5917d486027651c8e4124542abb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / django_models-1.1.0-py3-none-any.whl

Download URL django_models-1.1.0-py3-none-any.whl
Size 18.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b5ea068fe6f96e0bbfc2de97c4e368a5c94246c4974d2f43bdaad980add6e8f0
BLAKE2b-256 checksum
How to use checksums
03a0cfe602c2a19206b4e208cb4df1e89e32265f08f933147815e9130a22da7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page