Coder Social home page Coder Social logo

django-seed's Introduction

Django Seed


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 manage.py command!


Python 2.7, 3.x pypi Travis Build coverage MIT License



Installation

To install django-seed, use pip:

pip install django-seed

Or to install from source:

python setup.py install

Configuration

Add it to your installed apps in settings.py:

INSTALLED_APPS = (
    ...
    'django_seed',
)

Usage

Note: When seeding models with Foreign Keys, you need to make sure that those models are seeded first. For example, if a model 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 manage.py seed command.

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

$ python manage.py 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: seeder.faker.email(),
})
seeder.execute()

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]
}

Tests

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 runtests.py

or if you have django_seed in INSTALLED_APPS:

$ python manage.py test django_seed

License

MIT. See LICENSE for more details.

django-seed's People

Contributors

ar45 avatar brobin avatar coolharsh55 avatar dchoruzy avatar eliangcs avatar joke2k avatar paulshannon avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.