重写\u create classmethod

2024-04-19 18:12:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用django,并且有一个自定义方法来创建特定模型的新对象:

class DiseaseFactory(factory.django.DjangoModelFactory):

    class Meta:
        model = models.Disease

    def _create(cls, model_class, *args, **kwargs):
        obj = model_class.create_new(first_name=f"Disease{uuid.uuid4()}")
        return obj

当我尝试使用DiseaseFactory.创建(),它向我抛出错误:

TypeError: _create() missing 1 required positional argument: 'model_class'

我做错什么了?在


Tags: 对象django方法模型objmodelmodelsfactory
1条回答
网友
1楼 · 发布于 2024-04-19 18:12:51

为了使其工作,您需要添加@classmethod decorator,如下所示:

class DiseaseFactory(factory.django.DjangoModelFactory):

    class Meta:
        model = models.Disease

    @classmethod
    def _create(cls, model_class, *args, **kwargs):
        obj = model_class.create_new(first_name=f"Disease{uuid.uuid4()}")
        return obj

相关问题 更多 >