{ "info": { "author": "Novapost Team", "author_email": "peopleask@novapost.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7" ], "description": "######################\ndjango-generic-filters\n######################\n\n`django-generic-filters` is a toolkit to filter results of Django's\n``ListView``, using forms.\n\nMain use cases are obviously search forms and filtered lists.\n\nAs a developer, given you have a ``ListView``, in order to let the user\nfilter the results:\n\n* use a form to easily render the filters as HTML;\n* the user typically sends the filters via GET;\n* validate the user's input using a Django form;\n* filter the Django view's queryset using form's cleaned data.\n\n.. image:: https://secure.travis-ci.org/novafloss/django-generic-filters.png?branch=master\n :alt: Build Status\n :target: https://secure.travis-ci.org/novafloss/django-generic-filters\n\n\n*******\nExample\n*******\n\n**views.py**\n\n.. code-block:: python\n\n from django_genericfilters.views import FilteredListView\n\n\n class UserListView(FilteredListView):\n # ListView options. FilteredListView inherits from ListView.\n model = User\n template_name = 'user/user_list.html'\n paginate_by = 10\n context_object_name = 'users'\n\n # FormMixin options. FilteredListView inherits from FormMixin.\n form_class = UserListForm\n\n # FilteredListView options.\n search_fields = ['first_name', 'last_name', 'username', 'email']\n filter_fields = ['is_active', 'is_staff', 'is_superuser']\n default_order = 'last_name'\n\n def form_valid(self, form):\n \"\"\"Return the queryset when form has been submitted.\"\"\"\n queryset = super(UserListView, self).form_valid(form)\n\n # Handle specific fields of the custom ListForm\n # Others are automatically handled by FilteredListView.\n\n if form.cleaned_data['is_active'] == 'yes':\n queryset = queryset.filter(is_active=True)\n elif form.cleaned_data['is_active'] == 'no':\n queryset = queryset.filter(is_active=False)\n\n if form.cleaned_data['is_staff'] == 'yes':\n queryset = queryset.filter(is_staff=True)\n elif form.cleaned_data['is_staff'] == 'no':\n queryset = queryset.filter(is_staff=False)\n\n if form.cleaned_data['is_superuser'] == 'yes':\n queryset = queryset.filter(is_superuser=True)\n elif form.cleaned_data['is_superuser'] == 'no':\n queryset = queryset.filter(is_superuser=False)\n\n return queryset\n\n\n**forms.py**\n\n.. code-block:: python\n\n from django import forms\n from django.utils.translation import ugettext_lazy as _\n from django_genericfilters import forms as gf\n\n\n class UserListForm(gf.QueryFormMixin, gf.OrderFormMixin, gf.FilteredForm):\n is_active = gf.ChoiceField(label=_('Status'),\n choices=(('yes', _('Active')),\n ('no', _('Unactive'))))\n\n is_staff = gf.ChoiceField(label=_('Staff'))\n\n is_superuser = gf.ChoiceField(label=_('Superuser'))\n\n def get_order_by_choices(self):\n return [('date_joined', _(u'date joined')),\n ('last_login', _(u'last login')),\n ('last_name', _(u'Name'))]\n\n\n*****\nForms\n*****\n\nSeveral form mixins are provided to cover frequent use cases:\n\n* ``OrderFormMixin`` with order_by and order_reverse fields.\n* ``QueryFormMixin`` for little full-text search using icontains.\n\nSee \"mixin\" documentation for details.\n\n\n**********\nRessources\n**********\n\n* Documentation: https://django-generic-filters.readthedocs.io\n* PyPI page: http://pypi.python.org/pypi/django-generic-filters\n* Code repository: https://github.com/novapost/django-generic-filters\n* Bugtracker: https://github.com/novapost/django-generic-filters/issues\n* Continuous integration: https://travis-ci.org/novapost/django-generic-filters", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/novapost/django-generic-filters", "keywords": "class-based view", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "django-generic-filters", "package_url": "https://pypi.org/project/django-generic-filters/", "platform": "", "project_url": "https://pypi.org/project/django-generic-filters/", "project_urls": { "Homepage": "https://github.com/novapost/django-generic-filters" }, "release_url": "https://pypi.org/project/django-generic-filters/1.9/", "requires_dist": null, "requires_python": "", "summary": "Easy filters for your Generic ListView with Django.", "version": "1.9" }, "last_serial": 3651905, "releases": { "0.10": [ { "comment_text": "", "digests": { "md5": "71da2bf83aaf0a8a185731b3777a7bd6", "sha256": "3a4d07c6c4a0f5ccdb9848ddf05e12ec492cb1904796a3411d083d2619f89a94" }, "downloads": -1, "filename": "django_generic_filters-0.10-py2-none-any.whl", "has_sig": false, "md5_digest": "71da2bf83aaf0a8a185731b3777a7bd6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 18953, "upload_time": "2016-10-12T13:16:24", "url": "https://files.pythonhosted.org/packages/cf/91/db9779fa293a37673de4509dcb178313de89b2f45e33fb5edd5c4e059894/django_generic_filters-0.10-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e27a84987474ba22c8a512f9f4b0af8", "sha256": "6bd2851439bb8fd008bc5da8d8f816fa39c55f1e1d8b279cd057b04917d2671e" }, "downloads": -1, "filename": "django-generic-filters-0.10.tar.gz", "has_sig": false, "md5_digest": "2e27a84987474ba22c8a512f9f4b0af8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13396, "upload_time": "2016-10-12T13:16:20", "url": "https://files.pythonhosted.org/packages/6d/f0/77c485f847513b62c2986f6e17d8d2c8b896d278e63fece1faf5493c3f4f/django-generic-filters-0.10.tar.gz" } ], "0.11": [ { "comment_text": "", "digests": { "md5": "df10d2492d54794a815f24201f13345c", "sha256": "c709ee205505be2a60bc7d74ac58ebacfe38e7b0bf127eef8d82371114103267" }, "downloads": -1, "filename": "django-generic-filters-0.11.zip", "has_sig": false, "md5_digest": "df10d2492d54794a815f24201f13345c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23899, "upload_time": "2014-09-08T12:13:53", "url": "https://files.pythonhosted.org/packages/cc/f6/203bb159e337bebe143d544976e3a593c9448ff0cb5091c60e6b54aec2d3/django-generic-filters-0.11.zip" } ], "0.12": [ { "comment_text": "", "digests": { "md5": "5f83363f13113f24534f6d35b3875ad8", "sha256": "486665e5f9234af65c8c5467ce23d74aa2c71738bbf366fa8e5fba4126cf7234" }, "downloads": -1, "filename": "django-generic-filters-0.12.zip", "has_sig": false, "md5_digest": "5f83363f13113f24534f6d35b3875ad8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24764, "upload_time": "2015-01-14T17:57:40", "url": "https://files.pythonhosted.org/packages/d8/17/788c2dd656e85defdd6e9a121858ade7c5fd0e633e570550281a7d0e8819/django-generic-filters-0.12.zip" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "1072af02e4243d26f233bb6a0fe770fb", "sha256": "c4b970629c3925166d869330c28d59bd48a906484d9963982660cf6560b92e90" }, "downloads": -1, "filename": "django-generic-filters-1.0.zip", "has_sig": false, "md5_digest": "1072af02e4243d26f233bb6a0fe770fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24881, "upload_time": "2015-01-29T15:01:55", "url": "https://files.pythonhosted.org/packages/94/76/0ab0b1f6f45663865f112249bedfbd4a9a7a9d17075873b53c0d5ba80522/django-generic-filters-1.0.zip" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "b4a99c833195de13210cf44103cb0973", "sha256": "5c09252e86e89afd158047f6da4f72d467f319a390a043913178821d2290c712" }, "downloads": -1, "filename": "django-generic-filters-1.1.zip", "has_sig": false, "md5_digest": "b4a99c833195de13210cf44103cb0973", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24948, "upload_time": "2015-04-16T06:55:16", "url": "https://files.pythonhosted.org/packages/ad/69/b707de6eec905d0ef132cdd55e525653455d1e8b1b031ba43d5e3bd106b3/django-generic-filters-1.1.zip" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "fd51ceb4af2fd04c72912eeca705513e", "sha256": "b240333b7d87b9f8251fb73aab9a19560f584182a5020f1a4fa2f9f2ee398dba" }, "downloads": -1, "filename": "django-generic-filters-1.2.zip", "has_sig": false, "md5_digest": "fd51ceb4af2fd04c72912eeca705513e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24997, "upload_time": "2015-05-11T12:54:44", "url": "https://files.pythonhosted.org/packages/e6/39/8155af8de9455dae410c9dec9fbfa1bd155313ce8a8c630e8a048a5c7209/django-generic-filters-1.2.zip" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "9d3d4c6c055bb4eba093480160dddfc8", "sha256": "d7e5e11cca5850e5795bb1182a3aba89d14ad2b8ff95423dd06e8e79d463c6a8" }, "downloads": -1, "filename": "django_generic_filters-1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "9d3d4c6c055bb4eba093480160dddfc8", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 19302, "upload_time": "2016-10-12T13:35:09", "url": "https://files.pythonhosted.org/packages/c1/e1/ddcb10967d3a2070de531c4a8169cda845fe369bb6b9467eeb311a477d08/django_generic_filters-1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6137379318003aaa5d72c43f37dc0d17", "sha256": "cc4e81aedc86938a94a0f6e63715d3cb7f74547d420d293b50c3b1a5d13d03d6" }, "downloads": -1, "filename": "django-generic-filters-1.3.tar.gz", "has_sig": false, "md5_digest": "6137379318003aaa5d72c43f37dc0d17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14050, "upload_time": "2016-10-12T13:36:49", "url": "https://files.pythonhosted.org/packages/f3/8a/83d83a530581a3fc185bf69673dbb46d46f66f22efed5f1be31ce1cca616/django-generic-filters-1.3.tar.gz" }, { "comment_text": "", "digests": { "md5": "904c82a48fb4547d41e193add9da2aa8", "sha256": "df80abb35aed5af01cde1912f5305d064a605b939d88922e901460adfb62cab0" }, "downloads": -1, "filename": "django-generic-filters-1.3.zip", "has_sig": false, "md5_digest": "904c82a48fb4547d41e193add9da2aa8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25051, "upload_time": "2015-06-01T12:48:26", "url": "https://files.pythonhosted.org/packages/ac/28/752b9c9cc0e2c6f30b77e63481004d86bc158b31a095a8123e27df0f3c09/django-generic-filters-1.3.zip" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "230e034afdafb06b0343ce2f03716a19", "sha256": "c690768d1b44dd1f3d96a8e889fc6b5614c109b1658be03bfd5e8048e8ee6dd0" }, "downloads": -1, "filename": "django_generic_filters-1.4-py2-none-any.whl", "has_sig": false, "md5_digest": "230e034afdafb06b0343ce2f03716a19", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 19280, "upload_time": "2016-10-12T13:12:11", "url": "https://files.pythonhosted.org/packages/8c/2a/5d65ff84322579e19af134ebf369b768f8f93fe227449d45c8c4ecf3f062/django_generic_filters-1.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83a11635a6ec3aeba5e49665d0c057b0", "sha256": "3303723dd9ff30d06b5eadd7445543b7fa3f4663f70a0b1982c76b0110ed1b4f" }, "downloads": -1, "filename": "django-generic-filters-1.4.tar.gz", "has_sig": false, "md5_digest": "83a11635a6ec3aeba5e49665d0c057b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14066, "upload_time": "2016-10-12T13:12:08", "url": "https://files.pythonhosted.org/packages/17/01/bd4b293468ddf836213c4d05ee037972226530457791ea64d6e57e273e93/django-generic-filters-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "929b8fea78f24e3573e58397805cedc2", "sha256": "21baedbc187586e5db8339b2507a6e0e7aadd21c628d774c7d4b5ed975185c16" }, "downloads": -1, "filename": "django_generic_filters-1.5-py2-none-any.whl", "has_sig": false, "md5_digest": "929b8fea78f24e3573e58397805cedc2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 19296, "upload_time": "2016-10-12T13:12:32", "url": "https://files.pythonhosted.org/packages/a0/d3/6945a6399213ae01c0d6a4fe3080858c7698067909f855fb5d7ea2f4ad07/django_generic_filters-1.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "990208a94a363e25d9b8f8902760025b", "sha256": "9fcad79080db46849f7e58cf73538afc0b3b6c1086906fe4f6573180cde8c5ca" }, "downloads": -1, "filename": "django-generic-filters-1.5.tar.gz", "has_sig": false, "md5_digest": "990208a94a363e25d9b8f8902760025b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14127, "upload_time": "2016-10-12T13:12:25", "url": "https://files.pythonhosted.org/packages/08/05/df0770ce87020d80a4c5c767c380e9388ec87eec2ef44e742128b901bef4/django-generic-filters-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "81b9b43cd2caf1264079ed4b95b998cd", "sha256": "e67adf3d44ed7e946dde73b2b9aacddca51b6ec80bc03c355aed45841bb7f56c" }, "downloads": -1, "filename": "django_generic_filters-1.6-py2-none-any.whl", "has_sig": false, "md5_digest": "81b9b43cd2caf1264079ed4b95b998cd", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 19321, "upload_time": "2016-10-12T12:58:41", "url": "https://files.pythonhosted.org/packages/53/33/dcfd4efaade89a9a4bf34a09155d08fb91135f752572c3914beecc7fcde0/django_generic_filters-1.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8dc2367cd8209c88f07b0c1523abdc58", "sha256": "7194575f0f40bd92a863bf5761efc1ba892c04cd466eb642177f945a3971919a" }, "downloads": -1, "filename": "django-generic-filters-1.6.tar.gz", "has_sig": false, "md5_digest": "8dc2367cd8209c88f07b0c1523abdc58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14214, "upload_time": "2016-10-12T12:58:37", "url": "https://files.pythonhosted.org/packages/3e/c3/fe46458fa932a2839294d484c3ab8c33608da2630f57005c541ef48fe56c/django-generic-filters-1.6.tar.gz" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "913f638981e7493854744ce3899e9733", "sha256": "f3412037dbf28b428002ac972f4d7d8bf2ab3cb2797fe39c65438a2fcd062cff" }, "downloads": -1, "filename": "django-generic-filters-1.7.tar.gz", "has_sig": false, "md5_digest": "913f638981e7493854744ce3899e9733", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15778, "upload_time": "2017-05-23T08:22:18", "url": "https://files.pythonhosted.org/packages/b4/cf/6ab5d9374aab9b8b29f5fbc77884fbb094ee90873753f8491fbaa3f3e470/django-generic-filters-1.7.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "e5e82a12d0017e25b28a411dae4b6db1", "sha256": "15ac65106fce7e189eeb1408dff120a66c5bc491545bad924daa3eb9cd214470" }, "downloads": -1, "filename": "django-generic-filters-1.8.tar.gz", "has_sig": false, "md5_digest": "e5e82a12d0017e25b28a411dae4b6db1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16279, "upload_time": "2017-12-04T10:55:45", "url": "https://files.pythonhosted.org/packages/75/95/2543852c91057dc6bcd6649e98b111a95e6f52ac46f195a3a75531e91b4e/django-generic-filters-1.8.tar.gz" } ], "1.9": [ { "comment_text": "", "digests": { "md5": "4932b0ff6a0294627efd33496db0e026", "sha256": "4047e2d50dbbb984f32fb7dde01627f74f42f5add41d21bb0d9af93e46dbad4b" }, "downloads": -1, "filename": "django-generic-filters-1.9.tar.gz", "has_sig": false, "md5_digest": "4932b0ff6a0294627efd33496db0e026", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16349, "upload_time": "2018-01-22T09:48:54", "url": "https://files.pythonhosted.org/packages/9b/33/13ba2e140aaa8f60a17acc87c3794a56a0507d09eccdda26e999633d0359/django-generic-filters-1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4932b0ff6a0294627efd33496db0e026", "sha256": "4047e2d50dbbb984f32fb7dde01627f74f42f5add41d21bb0d9af93e46dbad4b" }, "downloads": -1, "filename": "django-generic-filters-1.9.tar.gz", "has_sig": false, "md5_digest": "4932b0ff6a0294627efd33496db0e026", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16349, "upload_time": "2018-01-22T09:48:54", "url": "https://files.pythonhosted.org/packages/9b/33/13ba2e140aaa8f60a17acc87c3794a56a0507d09eccdda26e999633d0359/django-generic-filters-1.9.tar.gz" } ] }