Track the git revision with every model instance saved.
Project description
django-revision
Add a Django field class to your models to track the git revision with every model instance saved.
python 3.6, Django 2.0+. Uses GitPython.
For example:
from django.db import models
from django_revision import RevisionField
class TestModel(models.Model):
revision = RevisionField()
>>> test_model = TestModel.objects.create()
>>>test_model.revision
'0.1dev0'
If the source is modified after the git tag was applied:
>>> test_model = TestModel.objects.create()
>>>test_model.revision
>>> '0.1dev0-35-ge9f632e:develop:e9f632e92143c53411290b576487f48c15156603'
Reference git information from anywhere in your app:
>>> from django_revision import site_revision
>>> site_revision.tag
'0.1dev0'
>>>site_revision.revision
'0.1dev0'
For research trial data, we need to track the source code revision at time of data collection. We deploy our source as a git branch and django-revision picks up the tag:branch:commit and updates each saved model instance as data is collected.
Installation
Add to settings:
INSTALLED_APPS = [
...
'django_revision.apps.AppConfig',
...
]
If your git working directory is something other than settings.BASE_DIR add GIT_DIR to settings with the path to your git working directory. For example:
GIT_DIR = BASE_DIR.ancestor(2)
If you have a deployment case where the source folder is not a git repo, you can set the revision manually in settings:
REVISION = '0.1.3'
Using in a View and Template
In the view’s get_context_data set a context attribute to revision.tag or just use the RevisionMixin:
from django_revision.views import RevisionMixin
class MyView(RevisionMixin, TemplateView):
...
In your template:
{% block footer %}
<footer class="footer">
<div class="container">
<div class="col-md-4"><p class="text-muted text-center"><small>{{ year }} {{ institution }}</small></p></div>
<div class="col-md-4"><p class="text-muted text-center"><small>Revision: {{ revision }}</small></p></div>
<div class="col-md-4"><p class="text-muted text-center"><small>For Research Purposes Only</small></p></div>
</div>
</footer>
{% endblock footer %}
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
Built Distribution
Hashes for django_revision-0.1.19-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75dc60e7ff8909247ef6501755006ce0928c103ca1ba2538c8a4112dcf5d4f45 |
|
MD5 | 6b14a7e5ac757f5977889aca9c71b8b0 |
|
BLAKE2b-256 | aaeb23e59e6131357633b5f6cfe9567a9a6145fe1a679d4a8e2604ccd332b8f8 |