我使用Django Faker生成随机数据,效果很好。
我需要检查一个模型,确定在特殊情况下两个字段responsible
和customer
是相同的。
这是我的工厂班级:
class FirstQuoteRequest(DjangoModelFactory):
label = Faker("sentence")
description = Faker("sentences")
customer = SubFactory(UserFactory)
responsible = customer
通过输入responsible = customer
,我以为我要添加一个客户价值的克隆,但是在这种情况下,它是函数的一个克隆,该函数返回一个随机值,这不是我想要的。
我想到过像这样使用@post_generation
:
@post_generation
def responsible(self, create: bool, extracted: Sequence[Any], **kwargs):
self.responsible = self.customer
self.save()
但是会引发完整性错误。是否有使客户和负责人之间保持平衡的方法?哪一个?
答案 0 :(得分:0)
问题出在我方法的名称上,该名称不应与字段名称相同。因此解决方案是:
class FirstQuoteRequest(DjangoModelFactory):
label = Faker("sentence")
description = Faker("sentences")
customer = SubFactory(UserFactory)
responsible = customer
@post_generation
def clone_customer(self, create: bool, extracted: Sequence[Any], **kwargs):
self.responsible = self.customer
self.save()
希望,有帮助!