2016-07-07 118 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> 
    
    相关问题