Ich versuche, jedem Nutzer das Hochladen mehrerer Bilder in einen einzelnen Blogpost zu ermöglichen. Ich habe seit ein paar Tagen versucht, den besten Weg dafür zu finden. Was ist die beste Vorgehensweise, um dies zu tun?
Nach dem, was ich gelesen habe, sollte ich ein separates Bildmodell aus dem Blog-Post-Modell machen und einen Fremdschlüssel verwenden. Ist das richtig? Dann gibt es die Frage, wie man ihnen erlaubt, mehrere Bilder gleichzeitig hochzuladen. Habe ich recht, wenn ich ansetze, dass ich etwas wie Drop-Zone benutzen soll?
Jeder Rat zu Best Practices für die Speicherung der Fotos ist ebenfalls willkommen. Ich habe mir Amazon S3 und Cloudinary angeschaut. Ich möchte etwas schaffen, das skalierbar ist.
Jede Hilfe wäre sehr willkommen!
Sie brauchen nur zwei Modelle. Einer für die Post und der andere wäre für die Bilder. Ihr Bildmodell hätte einen Fremdschlüssel für das Post-Modell:
%Vor%Sie müssen für jedes Modell ein Formular erstellen, aber sie werden zueinander in Beziehung stehen, etwa wenn der Benutzer das Formular ausfüllt, muss er auch das Bildformular ausfüllen, damit der Beitrag erfolgreich veröffentlicht wird, und Wir werden das in den Ansichten tun, aber im Moment kann Ihre Form in etwa so aussehen.
%Vor%Das ist jetzt der wichtigste Teil von allem, die Ansichten, denn hier werden mehrere Bilder zu einer einzigen Magie hochgeladen. Damit wir mehrere Bilder gleichzeitig hochladen können, benötigen wir mehrere Bildfelder, oder? Dort verlieben Sie sich in Django Formsets . Wir werden ned django formsets verwenden, um das möglich zu machen. Sie können über Formsets in der Django-Dokumentation lesen, die ich verlinkt habe :) Aber so sollte Ihre Ansicht aussehen:
%Vor% In der Ansicht erhalten wir unsere beiden Formen, und die Ansicht prüft beide Formen, wenn sie gültig sind. Auf diese Weise muss der Benutzer das Formular ausfüllen UND alle Bilder hochladen, die in diesem Fall 3 extra=3
sind. Nur dann wird der Post erfolgreich erstellt.
Ihre Vorlage sollte dann so aussehen:
%Vor%Wenn Sie einige Eingaben haben name = image1 name = image2 name = image3 usw. in Ihrer Vorlage versuchen Sie dies
%Vor%Tags und Links django image amazon-s3 image-uploading cloudinary