如何解决如何在SubFactoryDjango中包含“多对多”字段?
我有两个模型:Project
和Tag
。在Project
中有ManyToManyField:project_tags
我已经为它们两个编写了工厂。问题是我不知道如何将TagFactory
包含到ProjectFactory
我尝试过:
project_tags = factory.SubFactory(TagFactory)
错误:
TypeError: Direct assignment to the forward side of a many-to-many set is prohibited. Use project_tags.set() instead
还有:
Project.project_tags.set()
错误:
AttributeError: 'ManyToManyDescriptor' object has no attribute 'set'
解决方法
简单的解决方案是通过factory.RelatedFactory
或factory.RelatedFactoryList
:
class ProjectFactory(factory.django.DjangoModelFactory):
class Meta:
model = Project
tags = factory.RelatedFactoryList(
TagFactory,size=4,)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。