2017-04-18 8 views
0

Ich probiere bulk_create eine Liste von Person Objekte aus einer Liste von rohen geparsten API-Daten. die Daten enthält:Django bulk_create beim Füllen von ImageField

  • Id
  • Kommentar
  • Bild

    person = raw_api_data[0] 
        obj = Person(
         id=person['id'], 
         comment=person['comment'], 
        ) 
    
        if person['image'] is not None: 
         obj.image.save(
          '.jpg', 
          ContentFile(person['image'].decode('base-64')), 
          save=False, 
         ) 
    new_persons.append(obj) 
    
    Person.objects.bulk_create(new_persons) 
    

Ich möchte Erstellen von Dateien lokal Bild auf Dateisystem vermeiden können, falls bulk_create ausfällt. (IntegrityError zum Beispiel)

Gibt es eine Möglichkeit zu vermeiden, die Datei selbst vor dem eigentlichen Erstellungsprozess zu erstellen, während auch in der Lage sein, alle Objekte mit ihren Bildern zu erstellen?

Ich habe keine anderen Ideen neben dem Erstellen der Inhaltsdatei vor dem Anhängen des Objekts selbst an die Bulk-Liste gefunden.

Antwort

0

Um Ihre Frage zu beantworten, nein. Wenn Sie möchten, dass Sie sich um eine riesige Mengenliste kümmern, versuchen Sie es mit dem Stapelverarbeitungskonzept, bei dem Sie alle 500 Artikel in großen Mengen einfügen. Sie müssen die Liste jedoch immer aktualisieren, während Sie eine Massenerstellung durchführen.

Verwandte Themen