Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Django Sample Data Helper

Django Sample Data Helper

Lightning Talk sobre el paquete django-sampledatahelper para generación de datos aleatorios en los modelos de django.

Jesús Espino

November 08, 2014
Tweet

More Decks by Jesús Espino

Other Decks in Programming

Transcript

  1. Introducci´ on Ejemplos Para terminar. Django Sample Data Helper Jes´

    us Espino Garc´ ıa 8 de Noviembre de 2014 Jes´ us Espino Garc´ ıa Django Sample Data Helper
  2. Introducci´ on Ejemplos Para terminar. ¿Qu´ e es? ¿Qu´ e

    es? Generador de datos aleatorios para python. Facilidades para rellenar modelos de django. F´ acil y r´ apido de integrar. Jes´ us Espino Garc´ ıa Django Sample Data Helper
  3. Introducci´ on Ejemplos Para terminar. ¿C´ omo surge? ¿C´ omo

    surge? Necesit´ abamos datos de ejemplo para trabajar en proyectos. Las fixtures no nos funcionaban. Creamos commands de django que generaban datos. Generalizamos esto y lo empaquetamos. Jes´ us Espino Garc´ ıa Django Sample Data Helper
  4. Introducci´ on Ejemplos Para terminar. ¿Por qu´ e usarlo? ¿Por

    qu´ e usarlo? Datos de ejemplo (casi) gratis. Datos de ejemplo realistas. Generaci´ on de los datos repetible. Jes´ us Espino Garc´ ıa Django Sample Data Helper
  5. Introducci´ on Ejemplos Para terminar. Instalaci´ on shell $ pip

    install django-sampledatahelper Jes´ us Espino Garc´ ıa Django Sample Data Helper
  6. Introducci´ on Ejemplos Para terminar. Desde el settings.py settings.py INSTALED_APPS

    += ["sampledatahelper"] SAMPLEDATAHELPER_MODELS = [ { ’model’: ’myapp.MyModel’, ’number’: 5, }, { ’model’: ’myapp.MyModel’, ’number’: 5, ’fields_overwrite’: [ (’my_int_field’, lambda _, sd: sd.int(5, 10)), ] }, { ’model’: ’myapp.MyModel’, ’number’: 5, ’fields_overwrite’: [(’my_int_field’, 5)] }] Jes´ us Espino Garc´ ıa Django Sample Data Helper
  7. Introducci´ on Ejemplos Para terminar. Desde c´ odigo command.py from

    django.core.management.base import BaseCommand from myapp.models import MyModel from sampledatahelper.model_helper import ModelDataHelper from sampledatahelper.helper import SampleDataHelper class Command(BaseCommand): mdh = ModelDataHelper(seed=12345678901) def handle(self, *args, **options): self.mdh.fill_model(MyModel, 5) self.mdh.fill_model(MyModel, 5, my_int_field=lambda i, sd: sd.int(5, 10)) self.mdh.fill_model(MyModel, 5, my_int_field=8) Jes´ us Espino Garc´ ıa Django Sample Data Helper
  8. Introducci´ on Ejemplos Para terminar. Desde c´ odigo command.py from

    django.core.management.base import BaseCommand from myapp.models import MyModel from sampledatahelper.helper import SampleDataHelper class Command(BaseCommand): sd = SampleDataHelper(seed=12345678901) def handle(self, *args, **options): for x in range(5): instance = MyModel.objects.create( slug=self.sd.slug(2, 3), name=self.sd.name(2, 3), ) Jes´ us Espino Garc´ ıa Django Sample Data Helper
  9. Introducci´ on Ejemplos Para terminar. M´ as ejemplos M´ as

    ejemplos Mezzanine: Rellenando el blog. Taiga.io: Un ejemplo real. Jes´ us Espino Garc´ ıa Django Sample Data Helper
  10. Introducci´ on Ejemplos Para terminar. Dudas . . . Jes´

    us Espino Garc´ ıa Django Sample Data Helper