Skip to main content

Additional, dynamic fields for all Django models.

Project description

=====================
django-specifications
=====================

.. image:: https://travis-ci.org/matthiask/django-specifications.png?branch=master
:target: https://travis-ci.org/matthiask/django-specifications

Version |release|

This module offers an easy way to attach auxiliary information to Django
models. It allows configuring custom forms through the administration
interface.

Usage
=====

1. Add ``"specifications"`` to ``INSTALLED_APPS``.
2. Create a ``specification = ForeignKey("specifications.Specification")``
on the model you want to use specifications with. The foreign key can
be nullable or required, as you wish.
3. Create the place where the specification field data is actually stored::

from specifications.models import SpecificationValueFieldBase

class MyObjectField(SpecificationValueFieldBase):
parent = models.ForeignKey(
MyObject,
on_delete=models.CASCADE,
related_name="fields",
)

class Meta:
ordering = ["field__group__ordering", "ordering"]

4. Inherit from ``FormWithSpecification`` when creating your ``ModelForm``::

from specifications.forms import FormWithSpecification

class MyObjectForm(FormWithSpecification):
class Meta:
model = MyObject

5. If you want to edit models with specifications you might want to use
the following snippet::

from specifications.admin import ModelAdminWithSpecification

class MyObjectAdmin(ModelAdminWithSpecification):
def get_fieldsets(self, request, obj=None):
# Define your fieldsets
fieldsets = [...]
if self.can_add_specification_fields(request, obj):
# Extend your fieldset with specification fields
fieldsets.extend(...)
return fieldsets

The fields are available after saving a specification. The specification can
be changed, but you risk losing data if you do this.


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-specifications-0.3.1.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

django_specifications-0.3.1-py2.py3-none-any.whl (14.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-specifications-0.3.1.tar.gz.

File metadata

  • Download URL: django-specifications-0.3.1.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/2.7.15rc1

File hashes

Hashes for django-specifications-0.3.1.tar.gz
Algorithm Hash digest
SHA256 7ed059143029ce472ccf0192dcdf8ec754267cee30b0364b13dfdf005ff095f1
MD5 bdc913ce56cc5eb214f870b0b6ab70d2
BLAKE2b-256 d7204cae147e21e21429d30a765ae76f368828b4d05b417c0f00f72a3766c028

See more details on using hashes here.

File details

Details for the file django_specifications-0.3.1-py2.py3-none-any.whl.

File metadata

  • Download URL: django_specifications-0.3.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/2.7.15rc1

File hashes

Hashes for django_specifications-0.3.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c8dae0bcf4d59d346e8770bc2a4d360a405c1a45af422649870eeb822674bd00
MD5 193caf064336213a90db77d70fc631c2
BLAKE2b-256 2d05e27e75ac49510932ced91a74517d320e831f5c99361d7adc003af29c2ad8

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