{ "info": { "author": "Mikhail Shvein", "author_email": "work_shvein_mihail@mail.ru", "bugtrack_url": null, "classifiers": [], "description": "# django-rest-form-fields\nExtended form fields to validate REST-request data via django.forms.\n\n## Requirements\n* Python 2.7 or Python 3.4+\n* Django >= 1.7\n* pytz\n* jsonschema\n* six\n* typing\n\n## Installation\nInstall via pip: \n`pip install django-rest-form-fields` \nor via setup.py: \n`python setup.py install`\n\n## Usage\nYou can use standard [django forms](https://docs.djangoproject.com/en/1.11/ref/forms/), adding new fields for them.\nAll `*args` and `**kwargs` fields in reference below will be passed to base django constructors as is.\n\nExample:\n```python\nfrom django import forms\nfrom django_rest_form_fields import FileField, ArrayField\n\nclass MyForm(forms.Form):\n file_field = FileField(max_size=1024, valid_extensions=['valid_extensions'])\n array_field = ArrayField(min_items=1, max_items=10)\n\n```\n\n## Base forms\nSince version 1.2.2 this library also contains base form classes.\nTogether with library fields, they give ability to change field's source attribute.\nTo have this feature, just inherit your class from BaseForm or BaseModelForm:\n```python\nfrom django_rest_form_fields.forms import BaseForm\nfrom django_rest_form_fields.fields import RestIntegerField\n\n\nclass MyForm(BaseForm):\n int_field = RestIntegerField(source='intField')\n\nf = MyForm({'intField': 123})\nf.full_clean()\nprint(f.cleaned_data['int_field'])\n# Outputs: 123\n```\n\n## Fields and their options\n\n### RestCharField(*args, source: Optional[str] = None, **kwargs)\nWraps django.forms.forms.CharField:\n* Changes default value - None, not empty string\n* Fixes initial value (CharField returns empty string, ignoring 'initial' parameter and None value) \n\nParameters:\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[str]`\n\n### RegExField(*args, regex: Optional[str] = None, flags: int = 0, source: Optional[str] = None, **kwargs)\nRestCharField child class, that automatically validates given string with regex (re.match function) \nIf regex parameter is specified and value matches expression, you can get MatchObject using field `match` attribute\n\nParameters:\n* regex: str - regular expression string or compiled with `re.compile()` object\n* flags: int - optional validate flags \n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[str]`\n\n### RestChoiceField(*args, choices: Optional[Iterable[Union[str, Tuple[str]]]] = None, source: Optional[str] = None, **kwargs)\nWraps django.forms.forms.ChoiceField:\n* Changes default value - None, not empty string\n* Fixes initial value (ChoiceField returns empty string, ignoring 'initial' parameter and None value)\n* Gives opportunity to set 'choices' as iterable of values, not iterable of tuples \n\nParameters:\n* choices: Optional[Iterable[Union[str, Tuple[str]]]] - values this field can have. \n It can be an iterable of strings or iterable of tuples[inner_name: str, human_name: str].\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[str]`\n\n### RestIntegerField(*args, source: Optional[str] = None, **kwargs)\n### RestFloatField(*args, source: Optional[str] = None, **kwargs)\nWrap django.forms.forms.IntegerField and django.forms.forms.FloatField, fixing initial value (Base fields returns None, ignoring 'initial' parameter and None value) \n\nParameters:\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[int/float]`\n\n### PositiveIntegerField(*args, with_zero: bool = False, source: Optional[str] = None, **kwargs)\n### IdField(*args, with_zero: bool = False, source: Optional[str] = None, **kwargs)\nChild of RestIntegerField, validating value as positive integer\nParameters:\n* with_zero: bool - if False, 0 will cause validation error \n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[int]`\n\n### TimestampField(*args, in_future: bool = True, source: Optional[str] = None, **kwargs)\nChild of RestFloatField. Gets timestamp value and converts it into `datetime.datetime` object in UTC.\nParameter `initial` can be float or `datetime.datetime` value. \nParameters:\n* in_future: bool - if False, datetime is validated to be less than `django.utils.timezone.now()` \n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[datetime.datetime]`\n\n### DateTimeField(*args, mask: str = \"%Y-%m-%dT%H:%M:%S\", source: Optional[str] = None, **kwargs)\nChild of RestCharField. Parses datetime string to `datetime.datetime` value.\nParameters:\n* mask: str - template for [datetime.strptime](https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior) function \n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[datetime.datetime]`\n\n### MonthField(*args, mask: str = \"%Y-%m\", source: Optional[str] = None, **kwargs)\nChild of DateTimeField. Parses month string to `datetime.date` value.\nReturns date of the first day of the month.\nParameters:\n* mask: str - template for [datetime.strptime](https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior) function \n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[datetime.date]`\n\n### TimezoneField(*args, source: Optional[str] = None, **kwargs)\nChild of RestCharField. Validates string as one of pytz timezone names.\n\nParameters:\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[str]`\n\n### DateUnitField(*args, source: Optional[str] = None, **kwargs)\nChild of RestChoiceField, validating value as one of [hour, day, week] \n\nParameters:\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[str]`\n\n### RestBooleanField(*args, source: Optional[str] = None, **kwargs)\nStandard `django.forms.forms.BooleanField` is based on /django/forms/widgets.py `CheckboxInput.value_from_datadict(value)`\nIt works improperly for REST model: `required=True` + `value=False` => `ValidationError`\nThis filed fixes this issue, giving opportunity to send False (required or not):\n* None as default value\n* 'false', '0', '' (ignoring case) as False\n* Everything else is parsed with standard bool function \n\nParameters:\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[str]`\n\n### LowerCaseEmailField(*args, source: Optional[str] = None, **kwargs)\nWraps `django.forms.forms.EmailField`:\n* Converts email string to lowercase\n* Fixes initial value bug (EmailField returns empty string, ignoring 'initial' parameter)\n* Changes default value - None, not empty string \n\nParameters:\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[str]`\n\n### ColorField(*args, source: Optional[str] = None, **kwargs)\nChild of RestCharField, validating color.\nColor should be six hexadecimal characters. \n\nParameters:\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[str]`\n\n### TruncatedCharField(*args, truncate_length: int = 255, source: Optional[str] = None, **kwargs)\nChild of RestCharField, which truncates given value, leaving first truncate_length characters.\n\nParameters:\n* truncate_length: Optional[int] - If None, acts as RestCharField. If integer - number of characters to leave. \n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[str]`\n\n### JsonField(*args, json_schema: Optional[dict], source: Optional[str] = None, **kwargs)\nChild of RestCharField. Validates, that value is dict, list or JSON-encoded string.\nIf string - decodes it. \n\nParameters:\n* json_schema: Optional[dict] - Object to validate given JSON with [jsonschema package](https://pypi.python.org/pypi/jsonschema).\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[Any]`\n\n### ArrayField(*args, min_items: int = 0, max_items: Optional[int] = None, item_schema: Optional[dict] = None, source: Optional[str] = None, **kwargs)\nJsonField child. Validates array. It can be represented in 3 forms:\n* list instance\n* JSON-encoded array\n* comma-separated string\n\nParameters:\n* min_items: int - Validates array has more or equal items\n* max_items: Optional[int] - Validates array has less or equal items\n* item_schema: Optional[dict] - Object to validate every item with [jsonschema package](https://pypi.python.org/pypi/jsonschema). \n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[List[Any]]`\n\n### IdArrayField(*args, source: Optional[str] = None, **kwargs)\nArrayField child. Validates array of IdField(). \nEach array element is cleaned with IdField(). \n\nParameters:\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[List[int]]`\n\n### IdSetField(*args, source: Optional[str] = None, **kwargs)\nIdArrayField child. Validates set of IdField(). \nEach element is cleaned with IdField(). Removes duplicated ids from input, if needed. \n\nParameters:\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[Set[int]]`\n\n### UrlField(*args, source: Optional[str] = None, **kwargs)\nRegexField child. Validates string as URL with `django.core.validators.URLValidator`\n\nParameters:\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[str]`\n\n### HexField(*args, source: Optional[str] = None, **kwargs)\nRestCharField child. Validates that string has hexadecimal characters only.\n\nParameters:\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[str]`\n\n### UUIDField(*args, source: Optional[str] = None, **kwargs)\nRegexField child. Validates field to be correct UUID.\n\nParameters:\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[str]`\n\n### FileField(*args, max_size: Optional[int] = None, valid_extensions: Optional[List[str]] = None, source: Optional[str] = None, **kwargs)\nWraps django.forms.forms.FileField:\n* Fixes initial value bug (FileField returns empty string, ignoring 'initial' parameter)\n* Adds validation parameters\n\nParameters:\n* max_size: Optional[int] - File size in bytes\n* valid_extensions: Optional[List[str]] - file extensions (without .), that are valid\n* source: Optional[str] - name of attribute to get data from. Defaults to form attribute name.\n\nResulting value: `Optional[file]`\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/M1hacka/django-rest-form-fields", "keywords": "", "license": "BSD 3-clause \"New\" or \"Revised\" License", "maintainer": "", "maintainer_email": "", "name": "django-rest-form-fields", "package_url": "https://pypi.org/project/django-rest-form-fields/", "platform": "", "project_url": "https://pypi.org/project/django-rest-form-fields/", "project_urls": { "Homepage": "https://github.com/M1hacka/django-rest-form-fields" }, "release_url": "https://pypi.org/project/django-rest-form-fields/1.3.0/", "requires_dist": null, "requires_python": "", "summary": "Extended form fields to validate REST-request data via django.forms", "version": "1.3.0" }, "last_serial": 5588776, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "3ab043d8898d546550cb60c82344ac16", "sha256": "00bbf624dbe28c74faff4b03562683de760567965e58ab38bd838d23c6dd55c6" }, "downloads": -1, "filename": "django_rest_form_fields-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3ab043d8898d546550cb60c82344ac16", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12987, "upload_time": "2017-11-18T05:34:31", "url": "https://files.pythonhosted.org/packages/64/19/a89b528148d95cedf01ab7f8b3f6d008998a64e1da29d092cebf5687ce6e/django_rest_form_fields-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02a2bfd6840748c8d00b02dac7ca4555", "sha256": "36a53c2e50fa9436f991ccb48119325a2253292d20ae7a13d755764c8584dbb7" }, "downloads": -1, "filename": "django-rest-form-fields-1.0.0.tar.gz", "has_sig": false, "md5_digest": "02a2bfd6840748c8d00b02dac7ca4555", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5708, "upload_time": "2017-11-18T05:34:33", "url": "https://files.pythonhosted.org/packages/1e/28/5826c8b0aa8476aef3f3636e99cd73f04ccdcf0ca97a61fb4d87d2f1be8e/django-rest-form-fields-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "baa2f782b34bdd3dcde8cc10ab20f7fe", "sha256": "9227d2eeeed00fbc1539a77bf7b0fa9be251afb4318696978b13ae592018e561" }, "downloads": -1, "filename": "django_rest_form_fields-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "baa2f782b34bdd3dcde8cc10ab20f7fe", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13083, "upload_time": "2018-02-03T06:46:41", "url": "https://files.pythonhosted.org/packages/75/8f/77a08ad60950e0ed80599f11af22ceec50ec0b68c15ca98ffe6adc01afb3/django_rest_form_fields-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd78a1696d2c9c465e9a871d2ffd1f8a", "sha256": "4186cf7691988c5317a39ebdfb608847e7aee714324e60094e1a7ff1908b5def" }, "downloads": -1, "filename": "django-rest-form-fields-1.1.0.tar.gz", "has_sig": false, "md5_digest": "bd78a1696d2c9c465e9a871d2ffd1f8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7572, "upload_time": "2018-02-03T06:46:42", "url": "https://files.pythonhosted.org/packages/e6/fd/f744f23f91ae88229f6b42a352fd08db0208b527e147ea23a7aa4fc0308e/django-rest-form-fields-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "2e0c2bcc599b3f4f29feffbdb2998491", "sha256": "b3de39484d8b5dc1045d95c0c8fe618dc5b6b8e6a4631f8d66e6bc8a7259a700" }, "downloads": -1, "filename": "django_rest_form_fields-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2e0c2bcc599b3f4f29feffbdb2998491", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13076, "upload_time": "2018-02-03T10:16:32", "url": "https://files.pythonhosted.org/packages/1d/66/1830ddd203d0308cdff41183d649a326a764b1e0fe64a949815df6381259/django_rest_form_fields-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fd6567dd3186eb43aebf06951eef8911", "sha256": "ed93426b6b4c603fc5fcfb545b41873176b0be814c5a1d0c6f497aeb799f9d5e" }, "downloads": -1, "filename": "django-rest-form-fields-1.1.1.tar.gz", "has_sig": false, "md5_digest": "fd6567dd3186eb43aebf06951eef8911", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7579, "upload_time": "2018-02-03T10:18:34", "url": "https://files.pythonhosted.org/packages/1f/67/f278510e0fcddcf1cd74b5ac62c07ae19e5d02f3a5d4c655d8c60923dab5/django-rest-form-fields-1.1.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "cc73c80d47d5979efbf5d2d5ad148099", "sha256": "82415b8cc6357fb1b408555beae80ebc09c847487b84eaff14295d7cb461bf14" }, "downloads": -1, "filename": "django_rest_form_fields-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cc73c80d47d5979efbf5d2d5ad148099", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13223, "upload_time": "2018-03-04T05:21:27", "url": "https://files.pythonhosted.org/packages/f2/64/4fda0f4f94efb998486bcdfdb75ddb1620f9e1c1af4ca9a30630b3d6de25/django_rest_form_fields-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d0baf9941804bba3ce85185c7f2d922", "sha256": "94ef5e14c798444c36e6a73a25013871862ae591707b9b7eebbdc2a9db896a2d" }, "downloads": -1, "filename": "django-rest-form-fields-1.2.0.tar.gz", "has_sig": false, "md5_digest": "4d0baf9941804bba3ce85185c7f2d922", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7795, "upload_time": "2018-03-04T05:22:21", "url": "https://files.pythonhosted.org/packages/a0/12/56fcb8c26548cced742f5ae5c25d1c1f74dab804a97c11a09c35c235848c/django-rest-form-fields-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "45f2e6f3ca4d6e8f8d56099bf67e0c41", "sha256": "4bc717fca51f218ff3ef1a2440759da9cde04f2604cb0cdc8bed26220bb8c2b0" }, "downloads": -1, "filename": "django_rest_form_fields-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "45f2e6f3ca4d6e8f8d56099bf67e0c41", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7941, "upload_time": "2018-03-07T08:11:59", "url": "https://files.pythonhosted.org/packages/30/07/0698c9b70a42c248d92ca19207198e11025b55d1a9a1f9d3d5bfbe911f8e/django_rest_form_fields-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c1cf23618ccd732e4b98e56bae26ab4b", "sha256": "d8055e5e72e0591d3169931287e9f9495c87f9119177655ca96e632366f51ff7" }, "downloads": -1, "filename": "django-rest-form-fields-1.2.1.win-amd64.zip", "has_sig": false, "md5_digest": "c1cf23618ccd732e4b98e56bae26ab4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17487, "upload_time": "2018-03-07T08:12:08", "url": "https://files.pythonhosted.org/packages/39/26/5ad45c31989212f7ee0f45102349cdb31dc054729693f1032345f0b8323d/django-rest-form-fields-1.2.1.win-amd64.zip" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "81c25b65b12cebcc4b70a18990865591", "sha256": "b03c18901ece0f4db0cdd839cec582651f33d89d886a532dad033546356ea40e" }, "downloads": -1, "filename": "django_rest_form_fields-1.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "81c25b65b12cebcc4b70a18990865591", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8830, "upload_time": "2018-04-26T07:11:55", "url": "https://files.pythonhosted.org/packages/37/da/de986dceb9f8ffde1bc0a19f53c2ebdbfdb0bd71c3717bae81637f57263e/django_rest_form_fields-1.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e8e4832f51d81ccac46d6f05b86f3096", "sha256": "c11841e5cb92bb9cbe11c934ca6eb160f63772234c076b0f480d6b0fea07c317" }, "downloads": -1, "filename": "django-rest-form-fields-1.2.2.tar.gz", "has_sig": false, "md5_digest": "e8e4832f51d81ccac46d6f05b86f3096", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8279, "upload_time": "2018-04-26T07:11:57", "url": "https://files.pythonhosted.org/packages/36/a8/d87d6ca23659847071b7c5015ef84501c18bd76db34784a4ef439dc22cb4/django-rest-form-fields-1.2.2.tar.gz" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "f926d8fb682c334226335352ba147168", "sha256": "a9f959d2457a7aac55a751fb34db702b92d69f8fa06f7aeb99c222eae683fe6f" }, "downloads": -1, "filename": "django_rest_form_fields-1.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f926d8fb682c334226335352ba147168", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8055, "upload_time": "2018-04-27T07:17:42", "url": "https://files.pythonhosted.org/packages/74/c4/593255f531ea6ec8a7d4a8d3a1327ef9586fc9866ec7d899e95fa1f2c8f0/django_rest_form_fields-1.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8556675f2654b0f4dc3e0945b4aa9a60", "sha256": "fe486aaba9b91e72a1fbf51ad29058463291123ce83ea775407422af5a1f02e4" }, "downloads": -1, "filename": "django-rest-form-fields-1.2.4.tar.gz", "has_sig": false, "md5_digest": "8556675f2654b0f4dc3e0945b4aa9a60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8364, "upload_time": "2018-04-27T07:17:44", "url": "https://files.pythonhosted.org/packages/91/f7/5400dfdbbc24f3ff681e5fe86e9b9b49c21861cc3b21645dae78b8d7e554/django-rest-form-fields-1.2.4.tar.gz" } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "371529035e6e1bfc7e89cd8dcb5117f5", "sha256": "e0f0294f4d11dffaa080df1ff1b9110598bad482c7fd40cf96bae9edc4f09da8" }, "downloads": -1, "filename": "django_rest_form_fields-1.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "371529035e6e1bfc7e89cd8dcb5117f5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16051, "upload_time": "2018-06-16T06:53:10", "url": "https://files.pythonhosted.org/packages/03/c0/9ea351000b30b6b08f6889bb5fd9754b921fc89e0e863b05cdc955516646/django_rest_form_fields-1.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d92cde0fa561ec0290a3eb9a643dc7b", "sha256": "4d801aec4037ea37cb9e17f62efec87284ca324a443a211244614603c0f2a50d" }, "downloads": -1, "filename": "django-rest-form-fields-1.2.5.tar.gz", "has_sig": false, "md5_digest": "5d92cde0fa561ec0290a3eb9a643dc7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11466, "upload_time": "2018-06-16T06:53:12", "url": "https://files.pythonhosted.org/packages/af/d3/a5f847b518a0d24e65705f84daca4f1b5d3040164eec3102a3c1ccbe0209/django-rest-form-fields-1.2.5.tar.gz" } ], "1.2.6": [ { "comment_text": "", "digests": { "md5": "d7c70da124ea266c3887e1ea3378c12e", "sha256": "f0438869c035efd05826ae2fc361321a2b40d663acd207bf3fcea33b6dc08d56" }, "downloads": -1, "filename": "django_rest_form_fields-1.2.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d7c70da124ea266c3887e1ea3378c12e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10794, "upload_time": "2018-06-25T07:14:43", "url": "https://files.pythonhosted.org/packages/17/b7/ec7cd4e6c556efdb904e9e72843426ef392eaca21d1ae39b4ba5ec86f571/django_rest_form_fields-1.2.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7cbc1f6490c40a36b327d08a328e82a7", "sha256": "0e363e6b69c6e46c6308fc7a02d86e718e44cbf0fde37d5eaece8c92583ca1b7" }, "downloads": -1, "filename": "django_rest_form_fields-1.2.6-py3.6.egg", "has_sig": false, "md5_digest": "7cbc1f6490c40a36b327d08a328e82a7", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 21444, "upload_time": "2018-08-02T08:52:54", "url": "https://files.pythonhosted.org/packages/36/98/fad655c540c37a916ab77a2d7798ec1b44191739f79bc65ec1ca1be23e45/django_rest_form_fields-1.2.6-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "6c59fe235e46a7f68cd7c777fb767aad", "sha256": "ea5ade94951e8c22988446528882f4063be8096c8f8c23e2c85bba67977b1110" }, "downloads": -1, "filename": "django-rest-form-fields-1.2.6.tar.gz", "has_sig": false, "md5_digest": "6c59fe235e46a7f68cd7c777fb767aad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11756, "upload_time": "2018-06-25T07:14:44", "url": "https://files.pythonhosted.org/packages/d2/9b/0fb5fda01619d803473419170d8390a7ce6cb696ce899121e02f8e4f49d9/django-rest-form-fields-1.2.6.tar.gz" } ], "1.2.7": [ { "comment_text": "", "digests": { "md5": "69895e6b180cbd3eade6fa096c2f0135", "sha256": "9bb9372f70deacbde21a95ed8027b248e4b88f036f7dc148be80c88f1f2feac2" }, "downloads": -1, "filename": "django_rest_form_fields-1.2.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "69895e6b180cbd3eade6fa096c2f0135", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10813, "upload_time": "2018-08-02T08:52:53", "url": "https://files.pythonhosted.org/packages/66/c1/a1ddea2f4776ca049e7bcd2dfd89dbbfeb263a27e4285d5832f21e77ff6b/django_rest_form_fields-1.2.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61edd146e7a9b920a8def3eec7ee1e97", "sha256": "12b6147fd965d154cd8f98d33ee79aa8f7c768407b8196cfd83cff7accd38902" }, "downloads": -1, "filename": "django-rest-form-fields-1.2.7.tar.gz", "has_sig": false, "md5_digest": "61edd146e7a9b920a8def3eec7ee1e97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11769, "upload_time": "2018-08-02T08:52:55", "url": "https://files.pythonhosted.org/packages/6b/7f/dedfe722eb8ac70bc37b76614b4d4bd89440ad0c4ba9a138c419c950eb1d/django-rest-form-fields-1.2.7.tar.gz" } ], "1.2.8": [ { "comment_text": "", "digests": { "md5": "7f0e79ad9ec53ef4643bf736e5862251", "sha256": "b4ee9bc83070873f25ad668c001601ac437e8419a8c291cae4d164079b784e01" }, "downloads": -1, "filename": "django_rest_form_fields-1.2.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7f0e79ad9ec53ef4643bf736e5862251", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11859, "upload_time": "2019-04-19T11:29:43", "url": "https://files.pythonhosted.org/packages/61/2a/c8ae5754fde54587a0985e30147ca44a4d82efa708e886cc6e4668676f1f/django_rest_form_fields-1.2.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "79ae7ecd5149192d8ad7ad421ef3efed", "sha256": "04230da5eef8ede0545a87c922f2ca32059e6766ccdaa117407a5da003eb99af" }, "downloads": -1, "filename": "django-rest-form-fields-1.2.8.tar.gz", "has_sig": false, "md5_digest": "79ae7ecd5149192d8ad7ad421ef3efed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11790, "upload_time": "2019-04-19T11:29:45", "url": "https://files.pythonhosted.org/packages/bf/cd/db54fa1461a72d7e5752aae4f22a8081a484607d27c75c57652a2d48eb12/django-rest-form-fields-1.2.8.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "a5e5ced38ba3387b57e4defa213dbc47", "sha256": "26fb0fd4bd841232bf42fc1fc1c691127645a1900996a1713ec4153686fd65d0" }, "downloads": -1, "filename": "django_rest_form_fields-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a5e5ced38ba3387b57e4defa213dbc47", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11901, "upload_time": "2019-07-26T12:18:27", "url": "https://files.pythonhosted.org/packages/40/14/fd9f5c4c7d1043bfbfa4f7ebc94c2d4356dd7decd75fa442b8d30da6ec52/django_rest_form_fields-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9e345901528ff4a6765072543cfedee6", "sha256": "9baf5eaea33b6f6031cca766e36d7d2449eced5b91ac70d167789f83d3a08118" }, "downloads": -1, "filename": "django-rest-form-fields-1.3.0.tar.gz", "has_sig": false, "md5_digest": "9e345901528ff4a6765072543cfedee6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11777, "upload_time": "2019-07-26T12:18:31", "url": "https://files.pythonhosted.org/packages/e4/ca/a1c2e0fcda1ffafed0467247b41df3658827940d6df9c9f60485cefcbab5/django-rest-form-fields-1.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a5e5ced38ba3387b57e4defa213dbc47", "sha256": "26fb0fd4bd841232bf42fc1fc1c691127645a1900996a1713ec4153686fd65d0" }, "downloads": -1, "filename": "django_rest_form_fields-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a5e5ced38ba3387b57e4defa213dbc47", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11901, "upload_time": "2019-07-26T12:18:27", "url": "https://files.pythonhosted.org/packages/40/14/fd9f5c4c7d1043bfbfa4f7ebc94c2d4356dd7decd75fa442b8d30da6ec52/django_rest_form_fields-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9e345901528ff4a6765072543cfedee6", "sha256": "9baf5eaea33b6f6031cca766e36d7d2449eced5b91ac70d167789f83d3a08118" }, "downloads": -1, "filename": "django-rest-form-fields-1.3.0.tar.gz", "has_sig": false, "md5_digest": "9e345901528ff4a6765072543cfedee6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11777, "upload_time": "2019-07-26T12:18:31", "url": "https://files.pythonhosted.org/packages/e4/ca/a1c2e0fcda1ffafed0467247b41df3658827940d6df9c9f60485cefcbab5/django-rest-form-fields-1.3.0.tar.gz" } ] }