{ "info": { "author": "Jose Soares", "author_email": "jose@linux.com", "bugtrack_url": null, "classifiers": [ "Framework :: Django", "License :: OSI Approved :: Apache Software License" ], "description": "|BUILD|_\n\n.. |BUILD| image::\n https://secure.travis-ci.org/jsoa/django-formfield.png?branch=master\n.. _BUILD: http://travis-ci.org/#!/jsoa/django-formfield\n\n\n:Version: 0.4\n:Docs: https://django-formfield.readthedocs.org/en/latest/\n:Download: http://pypi.python.org/pypi/django-formfield/\n:Source: https://github.com/jsoa/django-formfield\n\n==========\nChange Log\n==========\n* **0.4***\n * Django 1.9/1.10/1.11 compatibility\n * Cleaner error messages\n * Form within a form fixes\n* **0.3**\n * Django 1.6/1.7/1.8 compatibility\n * Python 3.4 compatibility\n * Form argument can now be dynamic\n\n* **0.2**\n * Fix Django 1.5 install issue\n\n* **0.1.3**\n * Fixed bug when a form's initial value evaludated to ``False``\n * pep8 related fixes\n\n===============\nGetting Started\n===============\n\ndjango-formfield is a form field that accepts a django form as its first argument, and validates\nas well as render's each form field as expected. Yes a form within a form, *within a dream*? There\nare two types of fields available, `FormField` and `ModelFormField`. For\n`ModelFormField` the data is stored in json. For `FormField` data is simply\nreturned as a python dictionary (form.cleaned_data)\n\n============\nInstallation\n============\n\nInstallation is easy using ``pip`` or ``easy_install``.\n\n::\n\n\tpip install django-formfield\n\nor\n\n::\n\n\teasy_install django-formfield\n\n\nAdd to installed apps\n=====================\n\n::\n\n INSTALLED_APPS = (\n ...\n 'formfield',\n ...\n )\n\n\nExample\n=======\n\n::\n\n from django.db import models\n from django import forms\n\n from formfield import ModelFormField\n\n class PersonMetaForm(forms.Form):\n age = forms.IntegerField()\n sex = forms.ChoiceField(choices=((1, 'male'), (2, 'female')), required=False)\n\n\n class Person(models.Model):\n name = CharField(max_length=200)\n\n meta_info = ModelFormField(form=PersonMetaForm)\n\nWhich will result in something like this (using the admin)\n\n.. image:: https://github.com/jsoa/django-formfield/raw/master/docs/_images/ss001.png\n\nThe `ModelFormField` is automatically set to `null=True`, `blank=True`, this is\nbecause validation is done on the inner form. As a result you will see something like the\nfollowing if we hit save on the change form:\n\n.. image:: https://github.com/jsoa/django-formfield/raw/master/docs/_images/ss002.png\n\nIf we supply the change for valid data you should get a python dictionary when retrieving\nthe data::\n\n >>> person = Person.objects.get(pk=1)\n >>> person.meta_info\n {u'age': 12, u'sex': u'1'}\n\nThe form is the only thing forcing valid input, behind the scenes the\ndata is being serialized into json. Therefore on the python level we can supply meta_info\nany valid json:::\n\n >>> from sample_app.models import Person\n >>> data = {'some': 'thing', 'is': 'wrong', 'here': 'help!'}\n >>> p = Person.objects.create(name=\"Joan\", meta_info=data)\n >>> p.meta_info\n {'is': 'wrong', 'some': 'thing', 'here': 'help!'}\n\n.. note::\n\n If the form field is being made available via a change form, such as the admin, any\n unexpected value will be overridden by what the form returns . For example, the\n `PersonMetaForm` above only expects `age` and `sex`, so none of the values above\n ('is', 'some' and 'here') match and will be overridden when the form submitted.\n\n We can however, make the field hidden or readonly and use it to supply any\n valid json, but its not really the intension of this app.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/jsoa/django-formfield/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "django-formfield", "package_url": "https://pypi.org/project/django-formfield/", "platform": "", "project_url": "https://pypi.org/project/django-formfield/", "project_urls": { "Homepage": "http://github.com/jsoa/django-formfield/" }, "release_url": "https://pypi.org/project/django-formfield/0.4/", "requires_dist": null, "requires_python": "", "summary": "django-formfield", "version": "0.4" }, "last_serial": 2814150, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "01334a0721215af0237edb429d34e66d", "sha256": "9376367773971e4eed9bb8519cffdb3a0b17418ce9a57ac6d566360870383790" }, "downloads": -1, "filename": "django-formfield-0.1.tar.gz", "has_sig": false, "md5_digest": "01334a0721215af0237edb429d34e66d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 680932, "upload_time": "2012-01-11T03:39:16", "url": "https://files.pythonhosted.org/packages/b4/d5/8f10655f6c2fcd9e77e00499d09044d6502f1fde710e3d6de04331f32a8f/django-formfield-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "cf303bc1227c3327e940a4176aba6e25", "sha256": "af5f66ee015549706b515cdd6223ad7b1e834310a5f7f1531e617bb3a45d2981" }, "downloads": -1, "filename": "django-formfield-0.1.1.tar.gz", "has_sig": false, "md5_digest": "cf303bc1227c3327e940a4176aba6e25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 679932, "upload_time": "2012-07-16T15:45:22", "url": "https://files.pythonhosted.org/packages/0e/41/279b4aa62ed960b671886a5fc7c35c8ec1245042e2fd5086d7aba87c6b94/django-formfield-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "7adaa8d33f5cb347c3cf9fde1fac930e", "sha256": "fc88faf357ca04df212eae220492a28863128761e5c178debaefdcaf8e22e3ad" }, "downloads": -1, "filename": "django-formfield-0.1.2.tar.gz", "has_sig": false, "md5_digest": "7adaa8d33f5cb347c3cf9fde1fac930e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 706877, "upload_time": "2012-08-15T02:20:58", "url": "https://files.pythonhosted.org/packages/8f/c7/8a2208ccb4b30ec0ec04472f6e5b015b608bd304211a9f578941d6b27c4c/django-formfield-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "406687310291fca863edd3bf12ad9587", "sha256": "d9f4fdb894b11abe3e9e222bef15d815e0b1b50b00ec3e0788865f3ee7d43b19" }, "downloads": -1, "filename": "django-formfield-0.1.3.tar.gz", "has_sig": false, "md5_digest": "406687310291fca863edd3bf12ad9587", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 707533, "upload_time": "2013-02-06T01:39:55", "url": "https://files.pythonhosted.org/packages/97/e5/92abff59a5c86dc4e711a8728e70212d22e7d3a3ec9ed2174a360d4939d2/django-formfield-0.1.3.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "05c57107345a88cd72c228d417b520c9", "sha256": "39e0b0920d26acc7bf919a00c1500862eef84e32e1b7c5b149f095550870f18c" }, "downloads": -1, "filename": "django-formfield-0.2.tar.gz", "has_sig": false, "md5_digest": "05c57107345a88cd72c228d417b520c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 703579, "upload_time": "2014-07-15T17:17:08", "url": "https://files.pythonhosted.org/packages/30/8c/c2ea804d181238a4c2689a8c0b2f1af80543a0242d9f34842374d3af5775/django-formfield-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "f9b21bd26cac200133456424ca1106bb", "sha256": "ea92213f627eab1a72e80c65c7b0847db4622d2b89ecdd85b769492e3770e6f6" }, "downloads": -1, "filename": "django-formfield-0.3.tar.gz", "has_sig": false, "md5_digest": "f9b21bd26cac200133456424ca1106bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 807199, "upload_time": "2016-04-08T18:54:40", "url": "https://files.pythonhosted.org/packages/1d/71/399b860977f10642912b8c61b5c1cd0bdb75f904ffeaee538fe6e5695415/django-formfield-0.3.tar.gz" } ], "0.3b2": [ { "comment_text": "", "digests": { "md5": "b7136fcbd44025cd533408ff7acf0ffc", "sha256": "2840d648fe1d8d4e76ffeab5fc941d527a843c11c7b12b534491b3e9adcd85d6" }, "downloads": -1, "filename": "django-formfield-0.3b2.tar.gz", "has_sig": false, "md5_digest": "b7136fcbd44025cd533408ff7acf0ffc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 807347, "upload_time": "2016-04-08T16:55:12", "url": "https://files.pythonhosted.org/packages/0b/63/c8288ca94385c68abd80aa57beb6571746661d639b7731d3ecc094b7aa1e/django-formfield-0.3b2.tar.gz" } ], "0.3b3": [ { "comment_text": "", "digests": { "md5": "f6a79f5d4126307ba0938daf8c9be1fd", "sha256": "8f35f504852800e4548895555f85f434f9cc61e0715170f0a062b246dd306ec6" }, "downloads": -1, "filename": "django-formfield-0.3b3.tar.gz", "has_sig": false, "md5_digest": "f6a79f5d4126307ba0938daf8c9be1fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 807312, "upload_time": "2016-04-08T17:12:45", "url": "https://files.pythonhosted.org/packages/fd/45/59cd2825e0c04e279fc2939047ccbf14e32d9e0b2d008da6fcd93706184a/django-formfield-0.3b3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "83941ed2f92ff259b853424750628f56", "sha256": "b63aa33c03e3cb1082ce74d680c440c726025bbe4e65d24c2f828645e8643fb1" }, "downloads": -1, "filename": "django-formfield-0.4.tar.gz", "has_sig": false, "md5_digest": "83941ed2f92ff259b853424750628f56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 807196, "upload_time": "2017-04-19T14:20:23", "url": "https://files.pythonhosted.org/packages/88/bd/99ef29f54cc4898bf53c8b30cc147c3188c05af5a02b0d10e26a51c63b96/django-formfield-0.4.tar.gz" } ], "0.4b3": [ { "comment_text": "", "digests": { "md5": "356e31fd27d4fb20d5258e63e55ce7b1", "sha256": "7d4a707384dc84b56d87636bcf151b75cc174ae2521b1f6b7288373cdbbba836" }, "downloads": -1, "filename": "django-formfield-0.4b3.tar.gz", "has_sig": false, "md5_digest": "356e31fd27d4fb20d5258e63e55ce7b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 807196, "upload_time": "2017-04-19T14:19:25", "url": "https://files.pythonhosted.org/packages/7f/73/a5ece84d9f38003b7d84761b0560269d1f0eb176499ec5a4fb693dd0c078/django-formfield-0.4b3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "83941ed2f92ff259b853424750628f56", "sha256": "b63aa33c03e3cb1082ce74d680c440c726025bbe4e65d24c2f828645e8643fb1" }, "downloads": -1, "filename": "django-formfield-0.4.tar.gz", "has_sig": false, "md5_digest": "83941ed2f92ff259b853424750628f56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 807196, "upload_time": "2017-04-19T14:20:23", "url": "https://files.pythonhosted.org/packages/88/bd/99ef29f54cc4898bf53c8b30cc147c3188c05af5a02b0d10e26a51c63b96/django-formfield-0.4.tar.gz" } ] }