Django Admin: Popup nach Änderung schließen
Veröffentlich am 18.11.2008, 14:24
Ich arbeite derzeit an einem netten CMS Modul für Django, bei dem die einzelnen Seiten im Baukastenprinzip inkl. Drag+Drop zusammengesetzt werden. Beim Bearbeiten der einzelnen PageElements (die Blöcke, aus denen die Seite besteht) fiel mir auf, dass beim Speichern der REQUEST Parameter _popup nicht berücksichtigt wird, sondern stattdessen zur Change List des zu bearbeitenden Models gewechselt wird.
Dieses Stück Code schafft Abhilfe und schließt das Popup Window nach dem Speichern auf die gleiche Weise, wie beim Hinzufügen von Objekten bei z.b. ForeignKeys.
class ClosablePopupAdmin(admin.ModelAdmin):
def response_change(self, request, obj):
response = super(ClosablePopupAdmin, self).response_change(request, obj)
if request.POST.has_key("_popup"):
return HttpResponse('<script type="text/javascript">window.close();</script>')
return response
Sehr simpel aber funktioniert ;-)
Tags: django, newforms-admin, popup