Feature Flipper
A set of simple feature flipper template tags that can be easily extended.
Installation
To install this, simply pip install django-feature-flipper.
Usage
Configure your INSTALLED_APPS in settings.py
INSTALLED_APPS = (
...
'feature_flipper',
...
)
This gives you access to the basic feature flipping models and template tags. You can then use the basic FeatureFlipper that turns flags on and off depending on your user, or customise your own.
Basic Feature Flipper
Set the flag choices in your settings.py file as:
FEATURE_FLIPPER_FLAGS = (
('simple_feature', u'Simple Feature'),
('beta_testing', u'Beta Testing'),
)
When you add features, simply add flags here and your application will be able to access the new flags immediately.
Custom Feature Flipper
To customise the feature flipper you can just extend feature_flipper.models.AbstractFeatureFlipper with your own field. This provides a major advantage over the basic flipper by letting you determine your own reference for filtering out whether users get a feature or not.
First, extend the AbstractFeatureFlipper model:
from feature_flipper.models import AbstractFeatureFlipper
class MyFeatureFlipper(AbstractFeatureFlipper):
"""
"""
USER_FEATURE_FIELD = 'company'
company = models.ForeignKey('myapp.Company')
The USER_FEATURE_FIELD sets the field that should be used for lookups when determining whether to show the feature to a user. The final part is to reference this in your settings.py:
FEATURE_FLIPPER_MODEL = 'myapp.MyFeatureFlipper',
Using in Templates
To use the feature flipper in your templates, just load the feature_flipper library and use the flipper template tag:
{% load feature_flipper %}
<ul class="features">
{% flipper request.user "simple_feature" %}
<li><a href="/simple">Simple feature</a></li>
{% endflipper %}
{% flipper request.user "beta_testing" %}
<li><a href="/testing">Beta-testing feature</a></li>
{% endflipper %}
</ul>
The feature tag
The feature template tag is a simple template tag that takes two arguments:
The user requesting access
The feature string to check for
For custom feature flippers, the user argument is simply the alternative user identifier, for example the user’s organisation.
Supported Django Versions
This supports Django 1.9 and later.
Feature Flipper |
Django |
|---|---|
0.0.7 |
1.9 |
Metadata
Release files for django-feature-flipper 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| django-feature-flipper-0.1.1.tar.gz | 5.2 kB | Without provenance | Details for django-feature-flipper-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| django_feature_flipper-0.1.1-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details for django_feature_flipper-0.1.1-py2.py3-none-any.whl |
Total release size: 14.9 kB
Release files / django-feature-flipper-0.1.1.tar.gz
| Download URL | django-feature-flipper-0.1.1.tar.gz |
|---|---|
| Size | 5.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
34824c5ae4576091c59d6a30cbc04959432de3f953ffe53654dcadfd21ced4d5
|
|
BLAKE2b-256 checksum How to use checksums |
f08a7bbc12043b8ee6d76a64efde528638da72ce63089e18e07111a20de254c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / django_feature_flipper-0.1.1-py2.py3-none-any.whl
| Download URL | django_feature_flipper-0.1.1-py2.py3-none-any.whl |
|---|---|
| Size | 9.7 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
89058669bd39a2921b73359a42c01f88c573c5bf7296e53fc632faf873c68351
|
|
BLAKE2b-256 checksum How to use checksums |
59bcf3cfbab0f616380a35fd86d608659df7cbb8f1872e3bf70d29252dd7fec2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for django-feature-flipper 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.