我想将一个上传按钮添加到默认的Django管理员,如下所示:
为此,我覆盖了admin / index.html模板以添加按钮,但是如何覆盖管理视图以便处理它?</ p>
我想要实现的是在上传文件后显示成功消息或错误消息。
答案 0 :(得分:18)
索引视图位于AdminSite
实例上。要覆盖它,您必须创建一个自定义AdminSite
子类(即不再使用django.contrib.admin.site
):
from django.contrib.admin import AdminSite
from django.views.decorators.cache import never_cache
class MyAdminSite(AdminSite):
@never_cache
def index(self, request, extra_context=None):
# do stuff
您可能希望在https://github.com/django/django/blob/1.4.1/django/contrib/admin/sites.py
中引用原始方法然后,您创建此类的实例,并使用此实例而不是admin.site
来注册您的模型。
admin_site = MyAdminSite()
然后,后来:
from somewhere import admin_site
class MyModelAdmin(ModelAdmin):
...
admin_site.register(MyModel, MyModelAdmin)
您可以在https://docs.djangoproject.com/en/dev/ref/contrib/admin/#adminsite-objects
找到更多详细信息和示例