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.

Avatar for Jesús Espino

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