{ "info": { "author": "Matthias Kestenholz", "author_email": "mk@feinheit.ch", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development", "Topic :: Software Development :: Libraries :: Application Frameworks" ], "description": "=====================\ndjango-specifications\n=====================\n\n.. image:: https://travis-ci.org/matthiask/django-specifications.png?branch=master\n :target: https://travis-ci.org/matthiask/django-specifications\n\nThis module offers an easy way to attach auxiliary information to Django\nmodels. It allows configuring custom forms through the administration\ninterface.\n\nUsage\n=====\n\n1. Add ``\"specifications\"`` to ``INSTALLED_APPS``.\n2. Create a ``specification = ForeignKey(\"specifications.Specification\")``\n on the model you want to use specifications with. The foreign key can\n be nullable or required, as you wish.\n3. Create the place where the specification field data is actually stored::\n\n from specifications.models import SpecificationValueFieldBase\n\n class MyObjectField(SpecificationValueFieldBase):\n parent = models.ForeignKey(\n MyObject,\n on_delete=models.CASCADE,\n related_name=\"fields\",\n )\n\n class Meta:\n ordering = [\"field__group__ordering\", \"ordering\"]\n\n4. Inherit from ``FormWithSpecification`` when creating your ``ModelForm``::\n\n from specifications.forms import FormWithSpecification\n\n class MyObjectForm(FormWithSpecification):\n class Meta:\n model = MyObject\n\n5. If you want to edit models with specifications you might want to use\n the following snippet::\n\n from specifications.admin import ModelAdminWithSpecification\n\n class MyObjectAdmin(ModelAdminWithSpecification):\n def get_fieldsets(self, request, obj=None):\n # Define your fieldsets\n fieldsets = [...]\n if self.can_add_specification_fields(request, obj):\n # Extend your fieldset with specification fields\n fieldsets.extend(...)\n return fieldsets\n\nThe fields are available after saving a specification. The specification can\nbe changed, but you risk losing data if you do this.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/matthiask/django-specifications/", "keywords": "", "license": "BSD License", "maintainer": "", "maintainer_email": "", "name": "django-specifications", "package_url": "https://pypi.org/project/django-specifications/", "platform": "OS Independent", "project_url": "https://pypi.org/project/django-specifications/", "project_urls": { "Homepage": "http://github.com/matthiask/django-specifications/" }, "release_url": "https://pypi.org/project/django-specifications/0.4.0/", "requires_dist": null, "requires_python": "", "summary": "Additional, dynamic fields for all Django models.", "version": "0.4.0" }, "last_serial": 5824394, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "ff68394e2f5d20665010d0afb24dac33", "sha256": "e84a1490c3b4603f40ce3e2161e89c4a9723e3b69b111f9053e73eba56a61fc3" }, "downloads": -1, "filename": "django-specifications-0.1.0.tar.gz", "has_sig": true, "md5_digest": "ff68394e2f5d20665010d0afb24dac33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7487, "upload_time": "2012-12-18T14:18:36", "url": "https://files.pythonhosted.org/packages/84/ee/42318418a521f3343c44fc6fa0b1ad00b387ecb58e47ef4f186f553027f7/django-specifications-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "ff2036d5ee9956927a91437052c55d27", "sha256": "29c0182053e7cf9f45c8677e61b42c67ea539992284212f809f46ab59667f8cd" }, "downloads": -1, "filename": "django-specifications-0.2.0.tar.gz", "has_sig": true, "md5_digest": "ff2036d5ee9956927a91437052c55d27", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10183, "upload_time": "2014-10-06T13:00:29", "url": "https://files.pythonhosted.org/packages/42/2d/4e803e5b48ef874d804ca37db71b9f06b4713a0a22f1bcdd5d56c183e3d6/django-specifications-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "2cc16ed979326b6e54b7cb26d1c7c1f2", "sha256": "b69ed7344646c1af2333ebabfb2280ff7bfb33914b0fd4ce0ca9309c9047c008" }, "downloads": -1, "filename": "django_specifications-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2cc16ed979326b6e54b7cb26d1c7c1f2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13864, "upload_time": "2018-09-30T09:32:45", "url": "https://files.pythonhosted.org/packages/70/6f/ac5018521fdaad3bcc4e68fd08d85f24cd6253d49d15d6a84f8573e4679f/django_specifications-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f7ce3eeb1617884990435e978f9e71d", "sha256": "59d40c0cfce1c12136d71a55556b17b890b3ee0a823f6d0f5af5b1240d188da8" }, "downloads": -1, "filename": "django-specifications-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2f7ce3eeb1617884990435e978f9e71d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10288, "upload_time": "2018-09-30T09:32:46", "url": "https://files.pythonhosted.org/packages/6e/b8/93b5e946f6b339945473ad07512f6f27a11b187da68f06a01806ad49cad3/django-specifications-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "193caf064336213a90db77d70fc631c2", "sha256": "c8dae0bcf4d59d346e8770bc2a4d360a405c1a45af422649870eeb822674bd00" }, "downloads": -1, "filename": "django_specifications-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "193caf064336213a90db77d70fc631c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14045, "upload_time": "2018-10-02T06:56:18", "url": "https://files.pythonhosted.org/packages/2d/05/e27e75ac49510932ced91a74517d320e831f5c99361d7adc003af29c2ad8/django_specifications-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bdc913ce56cc5eb214f870b0b6ab70d2", "sha256": "7ed059143029ce472ccf0192dcdf8ec754267cee30b0364b13dfdf005ff095f1" }, "downloads": -1, "filename": "django-specifications-0.3.1.tar.gz", "has_sig": false, "md5_digest": "bdc913ce56cc5eb214f870b0b6ab70d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10440, "upload_time": "2018-10-02T06:56:19", "url": "https://files.pythonhosted.org/packages/d7/20/4cae147e21e21429d30a765ae76f368828b4d05b417c0f00f72a3766c028/django-specifications-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "e87138a75e89209ac221939b16264cd0", "sha256": "bd660ad78102b71ff9db4385ad7c11d5f56867b0f294e4498f74e621447b66c4" }, "downloads": -1, "filename": "django_specifications-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e87138a75e89209ac221939b16264cd0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13995, "upload_time": "2019-09-13T08:16:14", "url": "https://files.pythonhosted.org/packages/83/a6/1f935d37c85349ad20aba6e4fc8dd5ba4f580024fb0b93f57f96145fa568/django_specifications-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ad66aef782a3b31b70466660ea7eecf", "sha256": "06b7987be8af6e1ba2991d30d0a6d6ab8dc9a0f3b0849c89f6216870992f07b6" }, "downloads": -1, "filename": "django-specifications-0.4.0.tar.gz", "has_sig": false, "md5_digest": "4ad66aef782a3b31b70466660ea7eecf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10419, "upload_time": "2019-09-13T08:16:16", "url": "https://files.pythonhosted.org/packages/1c/1f/1bed6a0585878962f0164034da245fdcf4ae68a3c287337b7c1e515b359a/django-specifications-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e87138a75e89209ac221939b16264cd0", "sha256": "bd660ad78102b71ff9db4385ad7c11d5f56867b0f294e4498f74e621447b66c4" }, "downloads": -1, "filename": "django_specifications-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e87138a75e89209ac221939b16264cd0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13995, "upload_time": "2019-09-13T08:16:14", "url": "https://files.pythonhosted.org/packages/83/a6/1f935d37c85349ad20aba6e4fc8dd5ba4f580024fb0b93f57f96145fa568/django_specifications-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ad66aef782a3b31b70466660ea7eecf", "sha256": "06b7987be8af6e1ba2991d30d0a6d6ab8dc9a0f3b0849c89f6216870992f07b6" }, "downloads": -1, "filename": "django-specifications-0.4.0.tar.gz", "has_sig": false, "md5_digest": "4ad66aef782a3b31b70466660ea7eecf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10419, "upload_time": "2019-09-13T08:16:16", "url": "https://files.pythonhosted.org/packages/1c/1f/1bed6a0585878962f0164034da245fdcf4ae68a3c287337b7c1e515b359a/django-specifications-0.4.0.tar.gz" } ] }