我按照手册中的说明重写了默认的AdminSite类,但是文档中关于这一部分的信息过于单纯。
我的gs/admin.py文件:
from django.contrib.admin import AdminSite
from django.conf.urls import patterns, url
from gs.views import *
class AdminSiteGs(AdminSite):
def get_urls(self):
urls = super(AdminSiteGs, self).get_urls()
urls += patterns('',
url(r'^my_admin_view/$', self.admin_view(my_admin_view))
)
return urls
admin_site_gs = AdminSiteGs()
gs是我的应用程序和项目名称。
gs/urls.py文件:
from django.conf.urls import patterns, include, url
from page import views
from gs.admin import admin_site_gs
urlpatterns = patterns('',
url(r'^admin/', include(admin_site_gs.urls)),
)
我有一个名为page的应用程序,其中我放置了admin.py文件:
from gs.admin import admin_site_gs
from page.models import Page, Menu
from django.contrib import admin
class PageAdmin(admin.ModelAdmin):
list_display = ('name', 'url', 'page_type')
class MenuAdmin(admin.ModelAdmin):
list_display = ('name', 'code')
admin_site_gs.register(Page, PageAdmin)
admin_site_gs.register(Menu, MenuAdmin)
所以这里什么都不起作用 =( 无论是 /admin/my_admin 视图(它返回404),还是主要的管理员页面 /admin。我没有看到我在 page/admin.py 文件中注册的模型。
这可能听起来很有趣,但我尝试了所有在3-4小时内工作的工作 =))正如您所猜测的那样,我完全是 Django 和 Python 的新手...现在我想知道的就是如何将自定义URL和视图添加到我的 AdminSite 类的重写中?
我删除了
autodiscover
方法,所以现在似乎 Django 没有看到关于文件 page/admin.py 的任何信息。但第一个问题更有趣,为什么我在尝试访问/admin/my_admin页面时会出现404错误...
PS为什么我的开头问候语被切掉了 o_O
get_urls()
,Django 会动态地为您添加模式。由于它们都以/admin
开头,因此您不必在基本的 urls.py 文件中手动包含它们。 - Brandon Taylor