2011-03-30 121 views
3

我做了一個簡單的Django應用程序。我有一個模型「訪客」。我的目標是在Django管理員中出現兩個表。一個與所有的遊客和一個只有今天的人。Django - 管理員 - 如何覆蓋Model Proxy的change_list模板?

我得到了一切工作與下面的代碼通過以下these instructions。但是我不確定如何只爲VisitorExpectedTodayProxy重寫change_list.html。

我試過了instructions here,我創建了Site/templates/admin/VisitorLog/VisitorExpectedTodayProxy/change_list.html,並在那裏做了我的更改,但似乎沒有選擇它。

Models.py

class Visitor(models.Model): 
    visit_datetime = models.DateTimeField(null=True) 
    visitor_name = models.CharField(max_length=500) 

#Make dummy models for different object views in admin interface 
class VisitorExpectedTodayProxy(Visitor): 
    class Meta: 
     proxy=True 
     verbose_name = "Visitor" 
     verbose_name_plural = "Today's Visitors and Regular Visitors" 

回答

2

嘗試lowercasing文件夾的名稱。

注意,對於該目錄中查找 時,管理員應用程序將 小寫的型號,所以確保你 名稱全部用小寫的目錄,如果 你要在 病例運行你的應用程序敏感的文件系統。

另外,你有沒有通過確保你的模板目錄工作的清單? TEMPLATE_DIRS需要包含您的模板文件夾,並確保filesystem模板加載器位於app_directories加載器之前。

最後,你可以通過的ModelAdmin屬性指向一個模板: http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.change_list_template

+0

謝謝。這只是一個小寫問題,doh – Greg 2011-03-30 17:09:43

3

在lowercasing你的路徑看起來像的頂部:

templates/admin/visitorlog/visitorexpectedtodayproxy/change_list.html 

您change_list.html的內容應延長默認admin/change_list:

{% extends "admin/change_list.html" %} 

您可以通過查看各個區塊來自定義此頁面的不同部分k模板中的django源代碼:

django/contrib/admin/templates/admin/change_list.html 
+0

我剛剛將change_list.html複製到目錄並在那裏修改它。有沒有更好的辦法? – Greg 2011-03-30 17:10:22