Skip to content

Instantly share code, notes, and snippets.

@ceolson01
Created March 19, 2016 15:04
Show Gist options
  • Save ceolson01/4f04fcd60aca00a10563 to your computer and use it in GitHub Desktop.
Save ceolson01/4f04fcd60aca00a10563 to your computer and use it in GitHub Desktop.
Django Simple Model Versioning
class NewsStoryForm(forms.ModelForm):
# ...form fields
def is_valid(self):
valid = super(NewsStoryForm, self).is_valid()
story = self.instance
form_version = self.cleaned_data.get('version', None)
latest_version = Story.objects.get(pk=story.pk).version
if not valid:
return valid
if form_version != latest_version:
print(form_version, latest_version)
self._errors['version_error'] = 'Wrong version and stuff'
return False
return True
class Page(models.Model):
# ... model fields
version = models.PositiveIntegerField(default=1)
def save(self, *args, **kwargs):
if self.id:
self.version += 1
super(Page, self).save(*args, **kwargs)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment