在 django admin 中自定义 change_list.html
Customize change_list.html in django admin
change_list.html
有 Action
部分,其中用户 select 执行操作并将其应用于 selected 项目(查询集)。
我想做的是:
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
但添加一个额外的 select 框似乎很困难。
可能吗?我该怎么做?
如果我没理解错的话,你想执行自定义管理操作吗?
如果是,请从 Django documentation for it 开始。然后看看这两个用例:
很简单:
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);
希望这对您有所帮助
change_list.html
有 Action
部分,其中用户 select 执行操作并将其应用于 selected 项目(查询集)。
我想做的是:
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
但添加一个额外的 select 框似乎很困难。
可能吗?我该怎么做?
如果我没理解错的话,你想执行自定义管理操作吗?
如果是,请从 Django documentation for it 开始。然后看看这两个用例:
很简单:
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);
希望这对您有所帮助