- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当 Django 模型中的字段具有选项选项时,请参阅 Django choices field option ,它利用包含 2 个项目的可迭代对象的可迭代对象来定义允许哪些值。例如:
模型
class IceCreamProduct(models.Model):
PRODUCT_TYPES = (
(0, 'Soft Ice Cream'),
(1, 'Hard Ice Cream'),
(2, 'Light Ice Cream'),
(3, 'French Ice Cream'),
(4, 'Italian-style Gelato'),
(5, 'Frozen Dairy Dessert'),
)
type = models.PositiveSmallIntegerField('Type', choices=PRODUCT_TYPES, default=0)
要在 Factory Boy 中为选择生成一个随机值,我会使用 factory.fuzzy.FuzzyChoice,但这只会选择 2 个项目的迭代。它不能采用所选迭代器的第一项。例如:
工厂
class IceCreamProductFactory(factory.django.DjangoModelFactory):
class Meta:
model = IceCreamProduct
type = factory.fuzzy.FuzzyChoice(IceCreamProduct.PRODUCT_TYPES)
错误
TypeError: int() argument must be a string, a bytes-like object or a number, not 'tuple'
获取元组的第一项是不可能的。例如:
工厂
class IceCreamProductFactory(factory.django.DjangoModelFactory):
class Meta:
model = IceCreamProduct
type = factory.fuzzy.FuzzyChoice(IceCreamProduct.PRODUCT_TYPES)[0]
错误
TypeError: 'FuzzyChoice' object does not support indexing
可以使用默认的 Python 随机迭代器,但这会在声明时生成一个值,因此每个工厂对象都将具有相同的随机值。例如:
工厂
class IceCreamProductFactory(factory.django.DjangoModelFactory):
class Meta:
model = IceCreamProduct
type = random.choice(IceCreamProduct.PRODUCT_TYPES)][0]
如何在 Factory Boy 中解决这个问题?我需要创建自定义 FuzzyAttribute 吗? (如果是,请举例说明)
最佳答案
您不需要 FuzzyAttribute。
您可以通过执行以下操作来限制可能的值并仅将每种产品类型的 int 值提供给 FuzzyChoice:
PRODUCT_IDS = [x[0] for x in IceCreamProduct.PRODUCT_TYPES]
class IceCreamProductFactory(factory.django.DjangoModelFactory):
class Meta:
model = IceCreamProduct
type = factory.fuzzy.FuzzyChoice(PRODUCT_IDS)
它应该完成工作。
请注意模糊模块最近已被弃用,请参阅 ( https://factoryboy.readthedocs.org/en/latest/fuzzy.html ),您可能想改用 LazyFunction。
关于python - Factory Boy 随机选择字段选项 "choices",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36641568/
我正在尝试使用 Factoryboy 在创建时指定长度的对象中创建列表。 我可以创建列表,但是由于提供的长度/大小的惰性,每次尝试创建具有指定长度的列表都会导致问题。 这是我到目前为止: class
我正在使用 django 1.6 和factory-boy。 class UserFactory(factory.Factory): class Meta: model = mode
所以,我一直在使用factory_boy包在一些应用程序中生成一些随机数据,并且我正在遭受日期提供程序的困扰:( class MyModel(models.Model): date = mod
假设您以这种方式关联这些 Django 模型: class Service: restaurant = models.ForeignKey(Restaurant) hist_day_per
我正在使用带有 SQLAlchemy 的 factory boy。 我正在尝试创建 Fact 对象,我希望工厂男孩生成作为 Fact 外键的 PatientDim 对象。但是 Subfactory 不
作为工作的一部分,我一直在回答 this question about the technical workings of a glitch in Pokémon Red ,我一直在寻找一种使用标准调
我正在阅读有关创建Game Boy仿真器的教程,我了解Game Boy使用8位CPU,但是我不明白为什么Gameboy使用两种类型的数据:字节(8位)和字(16位) 。 如果CPU的容量为8位,为什么
我试图让我的用户回答“你是男孩还是女孩?”的问题。与这两个选择之一,并迫使他们选择其中之一。 我认为我正朝着正确的方向前进,但每当我运行代码时,如果选择第二个选项,就会出现问题。 我做错了什么? va
谁能解释一下 Man Or Boy Test返回值 -67? 我徒劳地尝试写下结果,或者用调试器跟踪它。任何帮助将不胜感激。 可以找到不同实现的列表 here . 最佳答案 This is a nic
当 Django 模型中的字段具有选项选项时,请参阅 Django choices field option ,它利用包含 2 个项目的可迭代对象的可迭代对象来定义允许哪些值。例如: 模型 class
我正在学习 django 测试,我发现 django factory boy library 对编写测试用例非常有帮助,但有一件事我没有得到.. 例如我的工厂名称之一是 BlogFactory 所以我
问题 我正在使用模型类 Event包含一个可选的 ManyToManyField 到另一个模型类,User (不同的事件可以有不同的用户),有一个工厂类EventFactory (使用 Factory
在the Game Boy CPU Manual的第87页据称,CP n指令在没有借位时设置进位标志,这意味着 A n 时设置了进位标志。 . 一个例子:如果A=0和 B=1 , CP B设置标志,
我是 FactoryBoy 的新手。我正在尝试文档中确切示例的示例:reverse dependencies . 1)所提到的“UserLogFactory”“如此明显”是否正确,应该像这样自己做:
我的模型中有一个字段为 JSONField 类型(MYSQL 实现)。我想使用 FactoryBoy Faker 伪造该字段的数据。 我怎样才能做到这一点? 最佳答案 您可以通过创建一个返回 dict
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
我显然是个笨蛋,我会在一开始就承认这一点。我正在使用以下工厂 class DataSheetFactory(factory.DjangoModelFactory): class Meta:
我有一个模型 Profile,它有一个与 User 一对一的字段: from django.db import models class Profile(models.Model): user
这是 Man or boy测试方案代码: (define (A k x1 x2 x3 x4 x5) (define (B) (set! k (- k 1)) (A k B x1 x
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我是一名优秀的程序员,十分优秀!