Skip to main content

Reusable Django models and storages

Project description

DjangoEssentials

DjangoEssentials is a Python library designed to streamline and enhance the development process of Django applications. It offers a collection of commonly used Django models and deployment settings, encapsulating repetitive patterns and configurations into a reusable package. The library is intended to evolve with contributions from the community, making it a collaborative project.

Features

  • TimeBasedStampModel: An abstract model providing time-based fields for tracking creation, update, and deletion times of model instances.
  • MyS3Storage: A custom storage class for Django, facilitating integration with Amazon S3 for media storage, with features such as non-overwriting of files with the same name and public read access by default.

Getting Started

Below are instructions on how to install DjangoEssentials and examples of how to use its features in your Django projects.

Installation

Install DjangoEssentials using pip:

pip install DjangoEssentials

Usage

  • TimeBasedStampModel

Inherit from TimeBasedStampModel to add automatic creation, update, and soft deletion timestamps to your models.

from django.db import models
from djangoessentials import TimeBasedStampModel

class YourModel(TimeBasedStampModel):
    name = models.CharField(max_length=255)
    # Add your fields here
  • MyS3Storage

Configure your Django project to use MyS3Storage for handling media files with Amazon S3.

# settings.py

DEFAULT_FILE_STORAGE = 'DjangoEssentials.storage.MyS3Storage'

Than

from django.db import models
from djangoessentials import MyS3Storage

class MyModel(models.Model):
    document = models.FileField(upload_to='documents/', storage=MyS3Storage)
    # Add your fields here

Advanced Usage

DjangoEssentials aims to provide more utilities and helpers over time, driven by community contributions and the evolving needs of Django developers.

Contributing

We welcome contributions from the community, whether it's adding new features, improving documentation, or reporting bugs. Please follow these steps to contribute:

Fork the repository.

  • Create your feature branch (git checkout -b feature/AmazingFeature).
  • Commit your changes (git commit -am 'Add some AmazingFeature').
  • Push to the branch (git push origin feature/AmazingFeature).
  • Open a Pull Request.

Contact

For questions or additional information, please reach out to codermungan@gmail.com

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

DjangoEssentials-0.1.3.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

DjangoEssentials-0.1.3-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file DjangoEssentials-0.1.3.tar.gz.

File metadata

  • Download URL: DjangoEssentials-0.1.3.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.0

File hashes

Hashes for DjangoEssentials-0.1.3.tar.gz
Algorithm Hash digest
SHA256 6db4e9b57f2f38b9f6afaed234295ef9138aed611e9d3d0f88fed92301d94203
MD5 f4ce1e78e9840d486c5d4c42714e38cc
BLAKE2b-256 d63efb20aee6ae3a968e326ee9678a9033b0be9c7cd9f1f172b41a19e449c1ce

See more details on using hashes here.

File details

Details for the file DjangoEssentials-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for DjangoEssentials-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2dbd9a23c44e4f389ab462b7d773b67b1ce71a5f404c4983dce91d88035bbb57
MD5 454107ee4c0de40e623955aad7c12ea2
BLAKE2b-256 3f1c769336b114487fd479c55e830f4d9e0cfd3587d040c16d10facd5b201fca

See more details on using hashes here.

Supported by

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