В настоящее время я пытаюсь выполнить команду bulk_create для некоторых объектов в Django 1.9.2 (Python 3.5.1).Проверка данных модели Django на bulk_create
Приложение будет массовым импортированием данных, и я хочу проверить данные, прежде чем вставлять их в БД.
Производительность с использованием .bulk_create(), очевидно, намного превосходит .save(), но .full_clean() также убивает мою работу.
вид на вопрос:
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.'))
Любые мысли о том, как проверять объекты против типовых правил, не убивая производительность?
В этом случае, я бегу локально (UnitTest), и моя скорость идет от 2.224s вставить 9999 записей без проверки на 19.592s, когда я VALIDATE с помощью .full_clean()