简体   繁体   English

如何在子工厂(Django)中包含多对多字段?

[英]How to include Many to Many Field in SubFactory (Django)?

I have two models: Project and Tag .我有两个模型: ProjectTag In Project there is ManyToManyField: project_tags I have written factories for both of them.Project有 ManyToManyField: project_tags我为它们编写了工厂。 The problem is that I don't know how to include TagFactory to ProjectFactory问题是我不知道如何将TagFactory包含到ProjectFactory

I have tried:我试过了:

project_tags = factory.SubFactory(TagFactory)

Error:错误:

TypeError: Direct assignment to the forward side of a many-to-many set is prohibited. Use project_tags.set() instead

And also:并且:

Project.project_tags.set()

Error:错误:

AttributeError: 'ManyToManyDescriptor' object has no attribute 'set'

The simple solution is through factory.RelatedFactory or factory.RelatedFactoryList :简单的解决方案是通过factory.RelatedFactoryfactory.RelatedFactoryList

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM