
Security News
Meet Socket at Black Hat and DEF CON 2025 in Las Vegas
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
|pypi| |actions| |codecov| |downloads|
Add a Django field class to your models to track the git revision with every model instance saved.
python 3.7, Django 3.0+. Uses GitPython
.
For example:
.. code-block:: python
from django.db import models
from django_revision import RevisionField
class TestModel(models.Model):
revision = RevisionField()
.. code-block:: python
>>> test_model = TestModel.objects.create()
>>>test_model.revision
'0.1dev0'
If the source is modified after the git tag was applied:
.. code-block:: python
>>> test_model = TestModel.objects.create()
>>>test_model.revision
>>> '0.1dev0-35-ge9f632e:develop:e9f632e92143c53411290b576487f48c15156603'
Reference git information from anywhere in your app:
.. code-block:: python
>>> 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.
Add to settings:
.. code-block:: python
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:
.. code-block:: python
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:
.. code-block:: python
REVISION = '0.1.3'
In the view's get_context_data
set a context attribute to revision.tag
or just use the RevisionMixin
:
.. code-block:: python
from django_revision.views import RevisionMixin
class MyView(RevisionMixin, TemplateView):
...
In your template:
.. code-block:: python
{% 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 %}
.. |pypi| image:: https://img.shields.io/pypi/v/django-revision.svg :target: https://pypi.python.org/pypi/django-revision
.. |actions| image:: https://github.com/erikvw/django-revision/workflows/build/badge.svg?branch=develop :target: https://github.com/erikvw/django-revision/actions?query=workflow:build
.. |codecov| image:: https://codecov.io/gh/erikvw/django-revision/branch/develop/graph/badge.svg :target: https://codecov.io/gh/erikvw/django-revision
.. |downloads| image:: https://pepy.tech/badge/django-revision :target: https://pepy.tech/project/django-revision
FAQs
Track the git revision with every model instance saved
We found that django-revision demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.