2017-06-17 4 views
0

ich django verwende und eine benutzerdefinierte Methode haben für neue Objekte eines bestimmten Modells zu schaffen:Zwingende _create Class

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 

Wenn ich versuche, eine Instanz von DiseaseFactory mit DiseaseFactory.create() zu erstellen, es wirft mich der Fehler:

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

Was mache ich falsch?

Antwort

0

Damit dies funktioniert, müssen Sie @classmethod Dekorateur wie so hinzuzufügen:

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