栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Django管理员更改列表视图页面中添加按钮

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Django管理员更改列表视图页面中添加按钮

当多个应用程序提供同一资源的不同版本(模板,静态文件,管理命令,转换)时,在INSTALLED_APPS中首先列出的应用程序具有优先权。

确保你的应用已在

'django.contrib.admin'
中列出I
NSTALLED_APPS

change_list.html
在以下目录之一中创建模板:

# Template applies to all change lists.myproject/myapp/templates/admin/change_list.html      # Template applies to change lists in myapp.myproject/myapp/templates/admin/myapp/change_list.html  # Template applies to change list in myapp and only to the Foo model.myproject/myapp/templates/admin/myapp/foo/change_list.html  

该模板应自动提取,但是如果它不在上面列出的路径之一上,则还可以通过admin模型属性来指向它:

class MyModelAdmin(admin.ModelAdmin):    #...     change_list_template = "path/to/change_list.html"

你可以查找位于其中的原始change_list.html的内容path/to/your/site-packages/django/contrib/admin/templates/admin/change_list.html。另一个答案还显示了如何格式化模板。Nikolai Saiko向你展示了如何使用“扩展”和“超级”替代相关零件。摘要:

{% extends "admin/change_list.html" %} {% load i18n %} {% block object-tools-items %}    {{ block.super }}    <li>        <a  href="...">My custom admin page</a>    </li>{% endblock %}

让我们填写

href="..."
一个URL。管理员url名称位于名称空间“ admin”中,可以这样查找:

{% url 'admin:custom_view' %}

当你向change_form.html添加按钮时,你可能希望传递当前的对象ID:

{% url 'admin:custom_view' original.pk %}

现在创建一个自定义视图。这可以是常规视图(就像你网站上的其他页面一样),也可以是admin.py中的自定义管理员视图。ModelAdmin上的get_urls方法以与URLconf相同的方式返回要用于该ModelAdmin的URL。因此,你可以按照URL调度程序中的说明扩展它们:

class MyModelAdmin(admin.ModelAdmin):    def get_urls(self):        urls = super(MyModelAdmin, self).get_urls()        my_urls = patterns('', url(r'^my_view/$', self.my_view, name="custom_view")        )        return my_urls + urls    def my_view(self, request):        # custom view which should return an HttpResponse        pass    # In case your template resides in a non-standard location    change_list_template = "path/to/change_list.html"

阅读有关如何在ModelAdmin中设置视图权限的文档:https ://docs.djangoproject.com/en/1.5/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_urls

你可以保护视图,并且仅授予具有员工身份的用户访问权限:

from django.contrib.admin.views.decorators import staff_member_required@staff_member_requireddef my_view(request):    ...

你可能还需要检查

request.user.is_active
和处理不活动的用户。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387871.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号