【问题标题】:How to include Many to Many Field in SubFactory (Django)?如何在子工厂(Django)中包含多对多字段?
【发布时间】:2020-11-01 15:19:29
【问题描述】:

我有两个模型:ProjectTag。在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'

【问题讨论】:

  • project_tags = factory.project_tags.set(TagFactory object here) factory_boy我一点也不熟悉,所以:)
  • @Crosby 不工作,但谢谢 ;)

标签: python django factory-boy


【解决方案1】:

简单的解决方案是通过factory.RelatedFactoryfactory.RelatedFactoryList

class ProjectFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = Project

    tags = factory.RelatedFactoryList(
        TagFactory,
        size=4,
    )

【讨论】:

    猜你喜欢
    • 2020-03-16
    • 2014-04-04
    • 2012-05-14
    • 2011-11-07
    • 2018-08-20
    • 2021-08-21
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多