Python 使用Factory Boy SelfAttribute+relativedelta
我在测试中使用Factory Boy,希望实现以下目标: 使第一个周期结束日期依赖于第一个周期日期,并在其上添加12个月。 我试图将SelfAttribute与relativedelta结合使用,但我目前应用它的方式不起作用。我的代码: 导入日期时间 进口工厂 从dateutil导入relativedelta 进口合同 类ContractFactoryfactory.django.DjangoModelFactory: 类元: 模型=合同 开始日期=factory.LazyFunctiondatetime.date.today 第一个周期日期=工厂。SelfAttribute“开始日期” 第一个\u期间\u结束\u日期= factory.SelfAttribute'first\u period\u date' +relativedelta.relativedeltamonths=12 但在运行时,我得到以下错误:Python 使用Factory Boy SelfAttribute+relativedelta,python,django,unit-testing,factory-boy,Python,Django,Unit Testing,Factory Boy,我在测试中使用Factory Boy,希望实现以下目标: 使第一个周期结束日期依赖于第一个周期日期,并在其上添加12个月。 我试图将SelfAttribute与relativedelta结合使用,但我目前应用它的方式不起作用。我的代码: 导入日期时间 进口工厂 从dateutil导入relativedelta 进口合同 类ContractFactoryfactory.django.DjangoModelFactory: 类元: 模型=合同 开始日期=factory.LazyFunctiondat
TypeError: unsupported operand type(s) for +: 'SelfAttribute' and 'relativedelta'
所以这显然不是怎么做到的。但是我该怎么做呢?答案是懒惰;SelfAttribute仅对复制字段有用
你应该做:
类ContractFactoryfactory.django.DjangoModelFactory:
类元:
模型=合同
开始日期=factory.LazyFunctiondatetime.date.today
第一个周期日期=工厂。SelfAttribute“开始日期”
第一个\u期间\u结束\u日期=factory.LazyAttribute
lambda self:self.first\u period\u date+relativedelta.relativedeltamonths=12