我不確定我的發現,據報道,這對kender完全有幫助,因爲除了別的以外,我不知道他是不是在談論兩個管理站點,而是兩個數據庫,每個數據庫一個。那是我的情況。我明白了,我想讓我的一個應用程序(一款新應用程序)擁有自己的數據庫和自己的管理頁面。
但是我遇到了Bernhard Vallant的AdminSite子類化方法的一個問題,儘管它似乎是正統的,基本上是正確的。我解決了這個問題。
這裏的MOD到伯恩哈德Vallant的代碼,我認爲是完全必要的:
from django.contrib.admin.sites import AdminSite
class MyAdminSite(AdminSite):
pass
#or overwrite some methods for different functionality
myadmin = MyAdminSite(name='anything')
是的,我真的是名=「什麼」,你選擇(只要它不是「管理「)。而且我用它切換進出,每次都沒有任何管理員名稱分配失敗。
我得到的症狀是,當我添加第二個數據庫併爲其創建了一個myadmin,然後使用myadmin.register(My_ModelA)註冊模型,然後查看兩個管理應用程序頁面時,我使用第二個數據庫和myadmin以及模型My_ModelA的新應用程序看起來不錯,但我的舊管理頁面顯示了它的模型的死鏈接,當我點擊一個應用程序的非死鏈接時(舊應用程序使用舊數據庫)我得到了一個404代碼,表明該頁面不存在。
另外,我不知道它的問題,但我做了一些不同的東西從什麼 伯恩哈德Vallant項目的URLconf做:
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include('mynewapp.urls')),
url(r'^someword/admin/', include(admin.site.urls)),
)
OK,「someword」無關---那裏關於最終用戶的外觀,而不是應用程序或項目的名稱。但關聯的管理員是我的舊應用程序和舊數據庫的管理員。注意autodiscover()包含。 Bernhard Vallant在項目urlconf配置爲Bernhard Vallant時使用的文檔中存在一些模糊的語言,它將其與myadmin導入結合使用,並且還提供了對默認管理員的引用。
而對於URL配置爲mynewapp我:
from django.conf.urls import patterns, url, include
from myproject.admin import myadmin
urlpatterns = patterns('',
url(r'/', include(myadmin.urls))
)
urlpatterns += patterns('mynewapp.views',"... url() stuff for mynewapp's views"),
)
儘管內部命名您AdminSite實例不是「管理」其他東西的絕對必要性,我必須補充一點,當是時候爵士樂的mynewapp的admin.py文件與一些admin.ModelAdmin子類,有必要確實使用admin.ModelAdmin作爲父類。 myadmin畢竟是AdminSite子類的一個實例。正因爲如此,我認爲它與admin.site相同,而不是admin。
這對於像我這樣的NOOB來說非常混亂,因爲管理員用小寫字母看起來像一個實例,而我不熟悉子類實例。所以我認爲它不是。
當我嘗試執行此操作時,在登錄後,我收到「您無權編輯任何內容」。消息... – kender 2010-07-08 20:31:52
您使用的用戶應該將is_staff和is_superuser字段設置爲true。然後區分不同的管理員用戶和他們有權訪問http://docs.djangoproject.com/en/1.2/topics/auth/#permissions – 2010-07-09 08:42:55
好吧,我得到了這個工作。但我似乎無法爲兩個管理員站點設置不同的模板集合 - 他們都在模板中查找'admin /'目錄,即使其中一個是使用'backoffice'參數創建的,該參數應該將其名稱設置爲'backoffice '... – kender 2010-07-09 20:34:19