【问题标题】:Django Factory Boy and Faker always return same valueDjango Factory Boy 和 Faker 总是返回相同的值
【发布时间】:2021-10-04 03:12:19
【问题描述】:

我正在尝试生成虚拟数据,我在多个选项中有一个可选字段,但始终生成相同的扇区

models.py:

SECTOR = (("1", _("Administración y gestión")), ("2", _("Agricultura y ganadería")), ("3", _("Industria alimentaria")), ("4", _("Grandes almacenes")), ("5", _("Comercio")), ("6", _("Construcción e industrias extractivas")), ("7", _("Actividades físico-deportivas")))

class Company(TimeEntity):
  ...
  sector = models.CharField(verbose_name=_("Sector"), max_length=20, choices=SECTOR, default=1)

factories.py:

SECTOR_FACTORY = list(map(lambda x: x[0], app_models.SECTOR))

class CompanyFactory(DjangoModelFactory):

  class Meta:
    model = app_models.Company

  sector = fake.random_choices(elements=SECTOR_FACTORY, length=1)

【问题讨论】:

标签: django faker factory-boy


【解决方案1】:

使用正确的代码更新

from factory.fuzzy import FuzzyChoice

SECTOR_FACTORY = list(map(lambda x: x[0], app_models.SECTOR))

class CompanyFactory(DjangoModelFactory):

  class Meta:
    model = app_models.Company

  sector = FuzzyChoice(SECTOR_FACTORY)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    • 2019-11-05
    • 2018-05-08
    • 2021-08-23
    • 2017-12-17
    相关资源
    最近更新 更多