Ich möchte ein Modell, das den Benutzer in der Wagtail-Admin-Site zu wählen, ein Verzeichnis von Bildern geben geben Sie den Namen der Sammlung in einem CharField und auf einen Knopf drücken Sie eine Sammlung mit den gegebenen Name würde erstellt werden, dann die Bilder aus einem gegebenen Verzeichnis würden dann in der Datenbank gespeichert werden (damit sie im CMS verfügbar sind). Der Titel des Bildes wäre der Dateiname, während das Tag der Name des Verzeichnisses ist, in dem das Bild gefunden wird.Erstelle Sammlung mit Python-Code
Ich fand einen anderen Beitrag darüber, wie Bilder in der Datenbank mit Code gespeichert werden (image saving) , aber ich habe ein Problem beim Erstellen von Sammlungen programmatisch. Ich fand hier, um diesen Code (from here) funktionieren sollte, aber für mich anscheinend ist es nicht, wenn ich manage.py makemigrations tun, bekomme ich diesen Fehler:
django.db.utils.IntegrityError: UNIQUE constraint failed: wagtailcore_collection.path
Muss ich den Pfad in add_child zur Verfügung stellen müssen? Welchen Weg soll es sein? Danke für jede Hilfe im Voraus!
root_coll = Collection.get_first_root_node()
root_coll.add_child(name='testcoll')
Bitte können Sie die vollständige Stack-Trace des IntegrityError zeigen? Ich bin ein wenig verwirrt, warum das auf dem 'makemigrations'-Schritt geschehen würde ... – gasman
Die vollständige Fehlermeldung [link] (https://github.com/lazmol/wagtail-imageloader) finden Sie in err_trace.log. Die model.py ist da, beachten Sie, dass ich wirklich neu in Wagtail bin, also ist jede Hilfe willkommen! – Lazlo
Nur eine codierungsbezogene Frage: Wie funktioniert es, dass ein Image-Objekt wie folgt instanziiert werden kann: Image (title = "Bildtitel", file = ImageFile (image_file, name = "image-filename.jpg"))? Wenn ich mir [die Klassendefinition] (https://github.com/wagtail/wagtail/blob/master/wagtail/wagtailimages/models.py) anschaue, sehe ich keine __init__ Methode, aber diese (Titel, Datei) sind Klassenvariablen der AbstractImage-Klasse, die von Image geerbt wird. Wie kommt es, dass Sie diese als Argumente verwenden können, wenn Sie Image instanziieren und warum gibt es kein __init__? – Lazlo