MZA*_*MZA 5 django factory-boy
我是 FactoryBoy 的新手。我正在尝试文档中确切示例的示例:反向依赖关系。
1)提到的“UserLogFactory”是否“如此明显”,应该自己制作,如下所示:
class UserLogFactory(factory.django.DjangoModelFactory):
class Meta:
model = models.UserLog
Run Code Online (Sandbox Code Playgroud)
2)我得到AttributeError:
类型对象“UserLog”没有属性“ACTION_CREATE”
我在网上搜索了一下,发现了 1 个参考文献(github 错误报告),他似乎在同一天就自己解决了这个问题。他没有提到解决方案,但从他的评论来看,我认为这是显而易见的......
先谢谢您的帮助!
亲切的问候。
根据factory-boy关于RelatedFactory和SubFactory的文档,您在创建中定义的命名参数RelatedFactory将被传递到UserLogFactory,因此action预计该参数将成为UserLogFactory中的字段。
log = factory.RelatedFactory(UserLogFactory, 'user', action=models.UserLog.ACTION_CREATE)
Run Code Online (Sandbox Code Playgroud)
发生 AttributeError 是因为 UserLog 缺少 ACTION_CREATE 的常量定义,我认为这是字段的可能选择之一UserLog.action。
这是定义UserLog模型的可能方法:
class UserLog(models.Model):
ACTION_CREATE = 'CREATE'
ACTION_UPDATE = 'UPDATE'
ACTION_CHOICES = (
(ACTION_CREATE, 'create'),
(ACTION_UPDATE, 'update'),
)
user = models.ForeignKey(User)
action = models.CharField(choices=ACTION_CHOICES)
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请choices查看Django 选择文档