Export/dump data to use as a fixture:
python manage.py dumpdata --format=yaml --natural app.model >data.yaml
Load it again:
python manage.py loaddata data.yaml
https://docs.djangoproject.com/en/dev/topics/serialization/#natural-keys
from django.db import models
class PersonManager(models.Manager):
def get_by_natural_key(self, first_name, last_name):
return self.get(first_name=first_name, last_name=last_name)
class Person(models.Model):
objects = PersonManager()
...
def natural_key(self):
return (self.first_name, self.last_name)
class Meta:
unique_together = (('first_name', 'last_name'),)
If part of the natural key is a reference to another model, then that model needs to be deserialized first:
class Book(models.Model):
name = models.CharField(max_length=100)
author = models.ForeignKey(Person)
def natural_key(self):
return (self.name,) + self.author.natural_key()
natural_key.dependencies = ['example_app.person']