[英]TypeError: <lambda>() missing 1 required positional argument:
我正在嘗試使用factory_boy和faker用一些隨機數據填充Django項目。 但是,當我嘗試創建UserFactory對象的實例時,出現錯誤TypeError:()缺少1個必需的位置參數:'a'。
似乎與fake_date和date_joined屬性及其lambda函數有關。 我發現的一些教程已經使用lambda函數以這種方式對Factory對象進行了布局,但是它對我不起作用。
import datetime
import factory
import faker
from dataStoreApp.models import Category, Goal, Transaction
from django.contrib.auth.models import User
fake = faker.Faker()
class CategoryFactory(factory.django.DjangoModelFactory):
class Meta:
model = Category
name = factory.Iterator(['Category1', 'Category2',
'Category3', 'Category4',
'Category5', ], cycle=False)
class UserFactory(factory.django.DjangoModelFactory):
FACTORY_HIDDEN_ARGS = ('fake_date', )
class Meta:
model = User
fake_date = factory.LazyAttribute(
lambda a: datetime.datetime.now().strftime("%Y-%m-%d %H:%M"))
date_joined = factory.LazyFunction(lambda a: a.fake_date)
first_name = factory.LazyAttribute(lambda b: fake.first_name())
last_name = factory.LazyAttribute(lambda c: fake.last_name())
email = factory.LazyAttribute(lambda e: 'test' + '@test_email.com')
class GoalFactory(factory.DjangoModelFactory):
class Meta:
model = Goal
class TransactionFactory(factory.django.DjangoModelFactory):
class Meta:
model = Transaction
在python控制台中運行時,出現以下錯誤:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Program Files\Python36\lib\site-packages\factory\base.py", line 568, in create
return cls._generate(enums.CREATE_STRATEGY, kwargs)
File "C:\Program Files\Python36\lib\site-packages\factory\base.py", line 505, in _generate
return step.build()
File "C:\Program Files\Python36\lib\site-packages\factory\builder.py", line 272, in build
step.resolve(pre)
File "C:\Program Files\Python36\lib\site-packages\factory\builder.py", line 221, in resolve
self.attributes[field_name] = getattr(self.stub, field_name)
File "C:\Program Files\Python36\lib\site-packages\factory\builder.py", line 363, in __getattr__
extra=declaration.context,
File "C:\Program Files\Python36\lib\site-packages\factory\declarations.py", line 59, in evaluate
return self.function()
TypeError: <lambda>() missing 1 required positional argument: 'a'
您在代碼中使用參數a
創建函數
lambda a: ....
但似乎程序期望函數不帶參數
lambda: ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.