2016-07-07 9 views
4

Ich habe mein Inlined-Modell mit der Media-Klasse angepasst. Ich möchte die inlined Feldsätze anpassen 2 Dinge zu erreichen:django admin - wie überschreiben hinzufügen neue Zeile in einem inlined Formset

  • eine Schaltfläche, um jeden von JavaScript-Code
  • Zeile hinzufügen
  • laufen, wenn „neue Zeile hinzufügen“ gedrückt wird

Ich habe versucht tabulator.html zu überschreiben und egal, wo ich die überschriebene Vorlage, es macht keinen Unterschied.

Vom Spielen mit der change_form.html kann ich sagen, dass ich inline_admin_formset.opts.template überschreiben muss, aber ich weiß nicht wie. Irgendwelche Ideen?

enter image description here

+1

Sie könnten mehr Antwort erhalten, wenn Sie einen Code hinzufügen? –

+0

Was genau wollen Sie erreichen, indem Sie in jeder Zeile und durch den JavaScript-Code einen neuen Button hinzufügen? – JavaGhost

+0

Ich habe einen JavaScript-Code, der einige der Felder in Abhängigkeit von der Auswahl anderer Felder verbirgt. Das einzige Problem, das ich habe, ist, dass es nur funktioniert, wenn die Seite gespeichert und neu geladen wird. Was ich tun muss, ist dieses Javascript auszuführen, wenn die "neue Zeile hinzufügen" gedrückt wird. – max

Antwort

0

ich es herausgefunden.

  1. Kopie C: \ Python27 \ Lib \ site-packages \ django \ contrib \ admin \ Templates \ admin \ edit_inline \ tabular.html zu Ihrem Vorlagenordner es als benutzerdefinierte Vorlage
  2. zu verwenden, in Ihr Admin-Code, den Pfad zu der Vorlage angeben:

class PurchaseInlineAdmin(admin.TabularInline): 
    model = Purchase 
    extra = 0 
    template = "admin/my_app/shoppingcart/tabular.html" 
  1. ändern Sie Ihre individuelle tabular.html. Ich zeige nur den unteren Teil:

<script type="text/javascript"> 
function beep(){ 
    alert('beep'); 
} 

(function($) { 
    $("#{{ inline_admin_formset.formset.prefix }}-group .tabular.inline-related tbody tr").tabularFormset({ 
    prefix: "{{ inline_admin_formset.formset.prefix }}", 
    adminStaticPrefix: '{% static "admin/" %}', 
    addText: "{% blocktrans with inline_admin_formset.opts.verbose_name|capfirst as verbose_name %}Add another {{ verbose_name }}{% endblocktrans %}", 
    deleteText: "{% trans 'Remove' %}" 
    }); 
    $(".add-row a").click(beep); 
})(django.jQuery); 
</script>