2012-01-18 83 views
0

我有一些代碼來自動掃描文件系統的新圖像,並添加新的項目作爲模型實例。目前我使用以下觸發更新:哪裏是放置不需要選擇的DJango Admin操作的最佳位置?

def update_image_list(modeladmin, request, queryset): 
    print "Updating image list..." 
    AddMissingImageEntries() 
update_image_list.short_description = "Update image list from filesystem" 

class ProductImageAdmin(admin.ModelAdmin): 
    actions = [update_image_list] 

admin.site.register(ProductImage, ProductImageAdmin) 

...除了我必須選擇一個項目得到它要運行的工作,感覺有點哈克。

此操作與ProductImage相關,因此將它保留在ProductImageAdmin區域中感覺不錯我只是不確定如何整理它?

+0

當然,這是一個有點哈克,但它使用現有的「動作的好方法「掛鉤構建非常容易工作的東西。替代方案將是一個由cron作業或新的ModelAdmin視圖啓動的管理命令(檢查出'get_urls'),該視圖具有「更新圖像」POST處理程序,該處理程序可以從覆蓋更改列表模板中的'

'元素中調用。 – 2012-01-18 02:55:34

回答

2

您可以使用ProductImageAdmin創建自定義管理視圖。你可以覆蓋管理模板並添加一個按鈕鏈接,它將指向你的自定義視圖,它將管理你的圖像文件。我將覆蓋change_list.html爲模型,並覆蓋{%塊對象的工具項%}

Overriding admin templates

Adding views to admin sites

相關問題