Holen Sie sich Django views.py zurück und javascript auszuführen
Also arbeite ich mit django und Datei-uploads und-ich brauche eine javascript-Funktion ausführen, nachdem die Datei hochgeladen wurde.
Ich habe einen Datei-upload-handler in meiner views.py die sieht wie folgt aus:
def upload_file(request):
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
for f in request.FILES.getlist('fileAttachments'):
handle_uploaded_file(f)
return HttpJavascriptResponse('parent.Response_OK();')
else:
return HttpResponse("Failed to upload attachment.")
Und ich fand django Ausschnitt aus http://djangosnippets.org/snippets/341/ und ich habe die HttpJavascriptResponse in meiner Klasse views.py code. Es sieht wie folgt aus:
class HttpJavascriptResponse(HttpResponse):
def __init__(self,content):
HttpResponse.__init__(self,content,mimetype="text/javascript")
Allerdings, wenn ich eine Datei hochladen, den browser einfach macht "Eltern.Response_OK();" auf dem Bildschirm, anstatt wirklich ausführen von javascript. Und Chrome gibt mir die Warnung: "Ressource interpretiert, als Dokument, sondern übertragen mit MIME-Typ text/javascript"
Ist es auf jeden Fall zu bekommen views.py um das Skript auszuführen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, dass dies funktionieren wird.
Jedoch, man könnte denken, über die Rückkehr zu einem Erfolg (200) - status-code in diesem Fall, und dann mit etwas javascript im übergeordneten befestigen Sie die zum load-Ereignis von diesem Kind, und die Niederlassung auf der Rückkehr status-code. So haben Sie eine Trennung der anzeigen-rendering-code und blickverhalten code.
Einen besseren Weg, um die Weitergabe der mime auf das HttpResponse-Objekt.
mimetype
wurde ersetzt durchcontent_type
. Jedoch, dies scheint nicht zu funktionieren und das Skript macht als nur-text-anstatt ausführen.Chases Lösung für mich gearbeitet, obwohl ich ausführen müssen, mehr javascript, als dass ich mich in einen python-string:
Ich hier gelandet auf der Suche nach einem Weg, um ein dynamischen js-Datei mit django.
Hier ist meine Lösung :