2016-07-07 113 views
4

我已經使用Media類定製了我的內聯模型。 我想自定義內聯字段設置實現兩件事情:django admin - 如何覆蓋在內聯表單中添加新行

  • 從javascript代碼添加一個按鈕,每行
  • 運行時「添加新行」被按下

我已經嘗試覆蓋tabular.html,無論我把重寫模板放在哪裏,它都沒有任何區別。

從玩change_form.html我可以說我需要重寫inline_admin_formset.opts.template,但我不知道如何。 任何想法?

enter image description here

+1

如果你添加一些代碼,你可能會得到更多的迴應? –

+0

通過在每一行和javascript代碼中添加新按鈕,你到底想要達到什麼目的? – JavaGhost

+0

我有一個javascript代碼,根據其他字段的選擇隱藏一些字段。我唯一的問題是,它只有在頁面被保存並重新加載時才起作用。我需要做的是在按下「添加新行」時運行該javascript。 – max

回答

0

我想通了。

  1. 副本 C:\ Python27 \ LIB \站點包\ Django的\的contrib \ ADMIN \模板\ ADMIN \ edit_inline \ tabular.html 來使用它爲自定義模板的模板文件夾
  2. 在您的管理員密碼,指定路徑到模板:

class PurchaseInlineAdmin(admin.TabularInline): 
    model = Purchase 
    extra = 0 
    template = "admin/my_app/shoppingcart/tabular.html" 
  • 修改自定義tabular.html。我只是顯示底部:

  • <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>