Django工厂中FACTORY_FOR在哪里?
我在一个Django项目中使用Factory Boy,想要在对应的工厂里访问类里面定义的属性。
我的测试案例大概是这样的:
from django.test.testcases import TransactionTestCase
from app.tests.factories import SomeModelFactory
class MyTestCase(TransactionTestCase):
def test_something(self):
...
SomeModelFactory.create(
data_type=SomeModelFactory.FACTORY_FOR.TYPE_STRING)
...
我的类里,正如你所想的,确实在合适的位置有那个常量。
class SomeModel(models.Model):
TYPE_STRING = 2
...
而对应的工厂也是按应该的方式定义的。
class SomeModelFactory(factory.Factory):
FACTORY_FOR = SomeModel
...
但是测试案例失败了,提示说FACTORY_FOR
不存在。所以我觉得可能是元类把它藏起来了。理想情况下,我希望在使用工厂的时候,尽量减少直接导入模型的需要。
1 个回答
1
SomeModelFactory._associated_class
可能就是你要找的东西...