【发布时间】:2014-12-07 03:54:48
【问题描述】:
我正在使用带有夹层的 Django 1.7。我想在 admin 中有一些页面,员工可以在其中使用按钮和其他控制元素调用一些操作(管理命令等)。
我也想避免创建新模型,或手动创建模板并添加链接(如果可能)。
实现这一目标的最常见/最干净的方法是什么?
【问题讨论】:
标签: python django django-admin mezzanine django-1.7
我正在使用带有夹层的 Django 1.7。我想在 admin 中有一些页面,员工可以在其中使用按钮和其他控制元素调用一些操作(管理命令等)。
我也想避免创建新模型,或手动创建模板并添加链接(如果可能)。
实现这一目标的最常见/最干净的方法是什么?
【问题讨论】:
标签: python django django-admin mezzanine django-1.7
其实更简单。就在 urls.py 中的 urlpatterns 补丁管理 url 之前:
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 让你添加一个 url 到管理员 url。所以你可以像这样添加自己的视图:
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/3.1/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_urls
我没有尝试过,但在我看来,您可以将内置管理视图子类化,并让您的自定义模板扩展内置管理模板。
【讨论】: