Custom field to add multiple boolean features using a BigIntegerField.
Project description
Django BigFeat is custom field to add up to 63 boolean features using a BigIntegerField.
Quick start
from django.db import models
from bigfeat import BigFeatField
class ModelWithOptionalFeatures(models.Model):
FEATURES = {
'FEATURE_1' : 0x0000000000000001,
'FEATURE_2' : 0x0000000000000002,
'FEATURE_3' : 0x0000000000000004,
'FEATURE_4' : 0x0000000000000008,
...
'FEATURE_61' : 0x1000000000000000,
'FEATURE_62' : 0x2000000000000000,
'FEATURE_63' : 0x4000000000000000,
}
features = BigFeatField(masks=FEATURES)
m = ModelWithOptionalFeatures.objects.get(id=1)
print m.features.feature_1
if m.features.feature_2:
print m.features.feature_3 if m.features.feature_4 else m.features.feature_5
print m.features
Notes
The most significant bit (0x8000000000000000) cannot be used since BigIntegerField is stored as a signed integer and will cause an OverflowError
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file django_bigfeat-0.1.1-py2-none-any.whl
.
File metadata
- Download URL: django_bigfeat-0.1.1-py2-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c57b9d0abd8c4b115004b21e208041fb6656e764dae23c0abd606ce35c6e457 |
|
MD5 | 120b4526990d6955d57bf7e9625b3e66 |
|
BLAKE2b-256 | b3c06a57e50e9975801bdd615c8b22a2c3451dc0bed236ff48dea0ea6cfcf751 |