Je tente actuellement de créer en bloc des objets dans Django 1.9.2 (Python 3.5.1).Validation des données du modèle Django sur bulk_create
L'application importera en bloc des données et je souhaite valider les données avant de les insérer dans la base de données.
Les performances avec .bulk_create() sont, de toute évidence, très supérieures à .save(), mais .full_clean() est également en train de tuer mes performances.
vue en question:
subscription = get_object_or_404(Subscription, pk=subscription_id)
users = list(range(1,10000))
if users:
licenses = []
for u in users:
license = SubscriptionLicense(resource=subscription.resource,
external_user_id=int(u), license_expiration_time=None,
transferable=subscription.license_transferable,
subscription=subscription
)
# Question is in regards to this line
license.full_clean()
licenses.append(license)
SubscriptionLicense.objects.bulk_create(licenses)
return HttpResponse(status=201)
else:
raise ValidationError(_('Invalid users provided.'))
Toute réflexion sur la façon de valider les objets contre les règles du modèle sans tuer la performance?
Dans ce cas, je suis en cours d'exécution localement (unittest) et ma vitesse va de 2.224s pour insérer des enregistrements 9999 sans validation 19.592s quand je VALIDER en utilisant .full_clean()