我正在使用Django 1.7和Mezzanine。我想在管理員中設置一些頁面,員工可以通過按鈕和其他控制元素調用一些操作(管理命令等)。Django - 與模型無關的自定義管理頁面
我也想避免創建新模型,或者手動創建模板並添加鏈接(如果可能)。
什麼是最常見/乾淨的方式如何實現?
我正在使用Django 1.7和Mezzanine。我想在管理員中設置一些頁面,員工可以通過按鈕和其他控制元素調用一些操作(管理命令等)。Django - 與模型無關的自定義管理頁面
我也想避免創建新模型,或者手動創建模板並添加鏈接(如果可能)。
什麼是最常見/乾淨的方式如何實現?
其實它更簡單。在urls.py補丁管理網址中的urlpatterns之前就是這樣的:
def get_admin_urls(urls):
def get_urls():
my_urls = patterns('',
url(r'^$', YourCustomView,name='home'),
)
return my_urls + urls
return get_urls
admin.autodiscover()
admin_urls = get_admin_urls(admin.site.get_urls())
admin.site.get_urls = admin_urls
ModelAdmin.get_urls
讓你添加一個網址到管理網址的。所以,你可以添加你自己的看法是這樣的:
class MyModelAdmin(admin.ModelAdmin):
def get_urls(self):
urls = super(MyModelAdmin, self).get_urls()
my_urls = patterns('',
(r'^my_view/$', self.my_view)
)
return my_urls + urls
def my_view(self, request):
# custom view which should return an HttpResponse
pass
https://docs.djangoproject.com/en/1.7/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_urls
我沒有嘗試了這一點,但在我看來,你可以在構建管理員視圖子類,讓你的自定義模板擴展內置管理模板。
比可能的擴展管理模板「index.html」以包含指向此視圖的鏈接。 – 2015-07-24 11:01:25
你是一個救星!非常感謝你。爲什麼沒有想到這一點? – 2017-02-10 12:27:25