Page 1 of 1

Pyfactoryboy: So wählen Sie die Factory-Klasse in „SubFactory“ dynamisch aus

Posted: 03 Jan 2025, 11:40
by Guest
Ich möchte in der Lage sein, die Factory-Klasse in SubFactory dynamisch basierend auf den bereitgestellten Parametern zu ändern.
Betrachten Sie diesen Fall:

Code: Select all

BASIC_USER_FACTORY = *path to basic user factory*
ADMIN_USER_FACTORY = *path to admin factory*

class ProjectWithOwnerFactory(DjangoModelFactory):
class Params:
admin_owner = False

name = ...
date_created = ...
owner = SubFactory(*choose factory based on `admin_owner` param*)
Ich sollte die Fabrik so aufrufen können:

Code: Select all

ProjectWithOwnerFactory() # creates project with regular user as owner

ProjectWithOwnerFactory(admin_owner=True) # creates project with admin as owner
Ich habe den Ansatz mit SelfAttribute und LazyAttribute ausprobiert, aber da Factory eine Klasse (Instanz eines Typs) oder ein String-Pfad sein muss, schlägt der Code fehl .
Vielen Dank für Ihre Antworten im Voraus.