在django admin中自定义change_list.html

时间:2015-06-17 08:12:37

标签: python django django-admin

change_list.htmlAction部分,用户选择操作并将其应用于所选项目(查询集)。

我要做的是以下内容:

1. Add an additional <select> box near Action select box
2. Add an additional action which will use the value of the added select box in step 1.

我尝试自定义change_list.html,但添加额外的选择框似乎非常困难。

有可能吗?我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您想要制作自定义管理操作吗?

如果是,请从Django documentation for it开始。然后看看这两个用例:

答案 1 :(得分:1)

很简单:

class YourModelAdmin(admin.ModelAdmin):
    class Media:
        js = ('/static/js/adminfix.js', )

    def get_urls(self):
        urls = super(YourModelAdmin, self).get_urls()
        my_urls = patterns('',
            (r'^custom_action_select/$', self.custom_func)
        )
        return my_urls + urls

    def custom_func(self, request):
        # your action

你的adminfix.js看起来像是:

(function($) {
   $(document).ready(function($) {
      $(".object-tools").append('<select id="actionid">stuff</select>');
      $(".object-tools").on('click', '#actionid', function(e){
          // you send here the request to /custom_action_select/
          // and handle if in custom_func() in your admin.py 
      });
   });
})(django.jQuery);

希望这会有所帮助