Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Seed your Django project with fake data

Project Description

Django-seed uses the faker library to generate test data for your Django models. This has been “hard-forked” from django_faker in order to support newer versions of Python and Django

Django-seed allows you to write code to generate models, and seed your database with one simple command!


To install django-seed, use pip:

pip install django-seed

Or to install from source:

python install


Add it to your installed apps in



Note: When seeding models with Foreign Keys, you need to make sure that those models are seeded first. For example, if a model in app A has a foreign key to a model in app B, you must seed app B first.

Using with command

With django-seed, you can seed your database with test data from the command line using the seed command.

Ex: Seed 15 of each model for the app api:

$ python seed api --number=15

That’s it! Now you have 15 of each model seeded into your database.

Using with code

django-seed provides methods to easily seed test databases for your Django models. To seed your database with Model instances, import Seed, get a seeder instance, and use the add_entity method.

Ex: seeding 5 Game and 10 Player objects:

from django_seed import Seed

seeder = Seed.seeder()

from myapp.models import Game, Player
seeder.add_entity(Game, 5)
seeder.add_entity(Player, 10)

inserted_pks = seeder.execute()

The seeder uses the name and column type to populate the Model with relevant data. If django-seed misinterprets a column name, you can still specify a custom function to be used for populating a particular column, by adding a third argument to the add_entity() method:

seeder.add_entity(Player, 10, {
    'score':    lambda x: random.randint(0,1000),
    'nickname': lambda x:,

Django-seed does not populate auto-incremented primary keys, instead seeder.execute() returns the list of inserted PKs, indexed by class:

print inserted_pks
    <class 'faker.django.tests.Player'>: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    <class 'faker.django.tests.Game'>: [1, 2, 3, 4, 5]


To run django tests in a django environment, first make sure you have the packages from requirement-test.txt installed, then run the following:

$ python

or if you have django_seed in INSTALLED_APPS:

$ python test django_seed


MIT. See LICENSE for more details.

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(10.8 kB) Copy SHA256 Hash SHA256
Source None Jan 15, 2018

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers DreamHost DreamHost Log Hosting