{ "info": { "author": "Junte", "author_email": "tech@junte.it", "bugtrack_url": null, "classifiers": [ "Framework :: Django", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development" ], "description": "django-bitfield\n---------------\n\n\nProvides a BitField like class (using a BigIntegerField) for your Django models.\n\n(If you're upgrading from a version before 1.2 the API has changed greatly and is backwards incompatible!)\n\nRequirements\n============\n\n* Django >= 2.0\n* PostgreSQL (see notes)\n\n**Notes:**\n\n- SQLite does not support save operations using a ``Bit`` (per the example under Usage).\n- MySQL fails on most queries related to BitField's.\n\nInstallation\n============\n\nInstall it with pip (or easy_install)::\n\n\tpip install jnt-django-bitfield\n\nUsage\n=====\n\nFirst you'll need to attach a BitField to your class. This acts as a BigIntegerField (BIGINT) in your database::\n\n\tfrom bitfield import BitField\n\n\tclass MyModel(models.Model):\n\t flags = BitField(flags=(\n\t 'awesome_flag',\n\t 'flaggy_foo',\n\t 'baz_bar',\n\t ))\n\nFlags can also be defined with labels::\n\n\tclass MyModel(models.Model):\n\t flags = BitField(flags=(\n\t ('awesome_flag', 'Awesome Flag!'),\n\t ('flaggy_foo', 'Flaggy Foo'),\n\t ('baz_bar', 'Baz (bar)'),\n\t ))\n\nNow you can use the field using very familiar Django operations::\n\n\t# Create the model\n\to = MyModel.objects.create(flags=0)\n\n\t# Add awesome_flag (does not work in SQLite)\n\tMyModel.objects.filter(pk=o.pk).update(flags=F('flags').bitor(MyModel.flags.awesome_flag))\n\n\t# Set flags manually to [awesome_flag, flaggy_foo]\n\tMyModel.objects.filter(pk=o.pk).update(flags=MyModel.flags.awesome_flag | MyModel.flags.flaggy_foo)\n\n\t# Remove awesome_flag (does not work in SQLite)\n\tMyModel.objects.filter(pk=o.pk).update(flags=F('flags').bitand(~MyModel.flags.awesome_flag))\n\n\t# Find by awesome_flag\n\tMyModel.objects.filter(flags=MyModel.flags.awesome_flag)\n\n\t# Exclude by awesome_flag\n\tMyModel.objects.filter(flags=~MyModel.flags.awesome_flag)\n\n\t# Test awesome_flag\n\tif o.flags.awesome_flag:\n\t print \"Happy times!\"\n\n\t# List all flags on the field\n\tfor f in o.flags:\n\t print f\n\n\t# Get a flag label\n\tprint o.flags.get_label('awesome_flag')\n\nEnjoy!\n\nAdmin\n=====\n\nTo use the widget in the admin, you'll need to update your ModelAdmin. Add the\nfollowing lines to your ModelAdmin::\n\n\tformfield_overrides = {\n\t\tBitField: {'widget': BitFieldCheckboxSelectMultiple},\n\t}\n\nMake sure you've imported the classes by adding these lines to the top of the file::\n\n\tfrom bitfield import BitField\n\tfrom bitfield.forms import BitFieldCheckboxSelectMultiple\n\nThere is also a ``BitFieldListFilter`` list filter (Django 1.4 or newer).\nTo use it set ``list_filter`` ModelAdmin option::\n\n list_filter = (\n ('flags', BitFieldListFilter,)\n )\n\nBitFieldListFilter is in ``bitfield.admin`` module::\n\n from bitfield.admin import BitFieldListFilter\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Junte/django-bitfield", "keywords": "", "license": "", "maintainer": "Junte", "maintainer_email": "tech@junte.it", "name": "jnt-django-bitfield", "package_url": "https://pypi.org/project/jnt-django-bitfield/", "platform": "", "project_url": "https://pypi.org/project/jnt-django-bitfield/", "project_urls": { "Homepage": "https://github.com/Junte/django-bitfield", "Repository": "https://github.com/Junte/django-bitfield" }, "release_url": "https://pypi.org/project/jnt-django-bitfield/1.9.8/", "requires_dist": [ "Django (>=2.0.0,<3.0.0)", "djangorestframework" ], "requires_python": ">=3.6,<4.0", "summary": "BitField in Django", "version": "1.9.8" }, "last_serial": 5187514, "releases": { "1.9.8": [ { "comment_text": "", "digests": { "md5": "946dec6c109850200cf728bef2e0477e", "sha256": "f894acccd0eea1426858438991fcc4a37f6255647d251a797e9a0ffc0c66d22e" }, "downloads": -1, "filename": "jnt_django_bitfield-1.9.8-py3-none-any.whl", "has_sig": false, "md5_digest": "946dec6c109850200cf728bef2e0477e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 10510, "upload_time": "2019-04-25T12:06:52", "url": "https://files.pythonhosted.org/packages/13/1b/c72d65a366521747d5787bee32fc51e1e8e06ac9772d637c4f2d9fb3527b/jnt_django_bitfield-1.9.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac3f588dde7366dc45545ed988ae61c4", "sha256": "ea03587b5acdba2cf4023734b04390fe54449cfce46a8e2a6a518d59544a7b77" }, "downloads": -1, "filename": "jnt-django-bitfield-1.9.8.tar.gz", "has_sig": false, "md5_digest": "ac3f588dde7366dc45545ed988ae61c4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 9650, "upload_time": "2019-04-25T12:06:50", "url": "https://files.pythonhosted.org/packages/61/c8/f649948a6e9fc5cb9a404ae2d42f78738e4a05f1ae5b6f575e8d5a09af3a/jnt-django-bitfield-1.9.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "946dec6c109850200cf728bef2e0477e", "sha256": "f894acccd0eea1426858438991fcc4a37f6255647d251a797e9a0ffc0c66d22e" }, "downloads": -1, "filename": "jnt_django_bitfield-1.9.8-py3-none-any.whl", "has_sig": false, "md5_digest": "946dec6c109850200cf728bef2e0477e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 10510, "upload_time": "2019-04-25T12:06:52", "url": "https://files.pythonhosted.org/packages/13/1b/c72d65a366521747d5787bee32fc51e1e8e06ac9772d637c4f2d9fb3527b/jnt_django_bitfield-1.9.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac3f588dde7366dc45545ed988ae61c4", "sha256": "ea03587b5acdba2cf4023734b04390fe54449cfce46a8e2a6a518d59544a7b77" }, "downloads": -1, "filename": "jnt-django-bitfield-1.9.8.tar.gz", "has_sig": false, "md5_digest": "ac3f588dde7366dc45545ed988ae61c4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 9650, "upload_time": "2019-04-25T12:06:50", "url": "https://files.pythonhosted.org/packages/61/c8/f649948a6e9fc5cb9a404ae2d42f78738e4a05f1ae5b6f575e8d5a09af3a/jnt-django-bitfield-1.9.8.tar.gz" } ] }