django-rest-framework - 如何从 SubFactory Django 单元测试中获取值
问题描述
我有三个类。在 OrdFactory 中,我只希望将 id 传递给“sku”字段,而 sku 是整数字段。
class CoFactory(factory.django.DjangoModelFactory):
class Meta:
model = models.Co
name = factory.Sequence(lambda n: 'Co {}'.format(n))
class CrFactory(factory.django.DjangoModelFactory):
class Meta:
model = models.Cr
name = factory.Sequence(lambda n: 'Cr {}'.format(n))
class OrdFactory(factory.django.DjangoModelFactory):
class Meta:
model = models.Ord
sku = random.choice([factory.SubFactory(CrFactory), factory.SubFactory(CoFactory)])
quantity = 75.6
我收到以下错误。
int() 参数必须是字符串、类似字节的对象或数字,而不是“Co”。
我也尝试过使用 id :-
sku = random.choice([factory.SubFactory(CrFactory).id, factory.SubFactory(CoFactory).id])
但这也会引发错误。
解决方案
我已经修复了使用 trait.Overload 也是一种替代解决方案。 https://factoryboy.readthedocs.io/en/latest/reference.html#factory.Trait
推荐阅读
- excel - 为什么 IMPORTRANGE 不从公式中导入数据?
- ios - 在扩展功能中激活时未添加 NSLayoutConstraints
- python - 如何重命名与 Teensyduino 的串行连接?使用 Teensyduino 进行串行阅读
- c# - 如何使用 GMap .NET 使用正确的顶点顺序绘制多边形
- python - 如何用字符串指定变量或字典?
- sql - 如何选择仅以特定前缀开头的字符串
- azure - 我能否从 Azure 容器注册表中清除所有存储库,而无需逐个输入所有存储库
- azure - 对 aks 集群的 SSH 访问
- reactjs - 在开玩笑断言测试之前如何等待事件发生?
- postgresql - Postgres 睡眠时间被添加到总查询运行时而不是输出中