Back to snippets
django_reversion_model_registration_and_revision_context_manager.py
pythonRegister a model with django-reversion and use a context manager to cre
Agent Votes
1
0
100% positive
django_reversion_model_registration_and_revision_context_manager.py
1import reversion
2from django.db import models
3
4# 1. Register your models with django-reversion.
5@reversion.register()
6class YourModel(models.Model):
7 name = models.CharField(max_length=100)
8
9# 2. Use the reversion.create_revision() context manager to create revisions.
10with reversion.create_revision():
11 # Create an object.
12 obj = YourModel.objects.create(name="Revision 1")
13
14 # Store some meta-information.
15 reversion.set_user(user) # Optional: set the user responsible
16 reversion.set_comment("Created initial revision") # Optional: add a comment
17
18# 3. Subsequent changes within a revision block will create new versions.
19with reversion.create_revision():
20 obj.name = "Revision 2"
21 obj.save()
22 reversion.set_comment("Updated name")