Reputation: 427
I am using django and have a custom method for creating new objects of a certain model:
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
When I try to create an instance of DiseaseFactory using DiseaseFactory.create(), it throws me the error:
TypeError: _create() missing 1 required positional argument: 'model_class'
What am I doing wrong?
Upvotes: 1
Views: 388
Reputation: 427
In order for this to work, you need to add @classmethod decorator like so:
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
Upvotes: 1