具有可调用函数的 Django-admin
Django-admin 视图仅允许更改模型对象的值。但是,是否可以以简单的方式配置或更改管理视图,以便它开始公开对象上的功能?我不是在谈论可以在对象列表顶部的下拉菜单中引入的功能。我的意思是直接访问模型对象上的函数?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以通过在 url conf 中添加“^admin/...”url 将您自己的视图添加到管理站点。您可以使用它来相对轻松地扩展管理站点,并通过您自己的视图公开模型方法。请参阅此处的
创建自定义管理视图
:http://www.djangobook。 com/en/1.0/chapter17/ (以及另一种方法和注释:https://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-views-to-admin-sites )。要将其添加为管理站点中模型的“更改表单”中的按钮,请覆盖所需模型的
change_form.html
模板(请参阅 https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-admin-模板)。您可能想要覆盖对象工具块,该块包含页面右上角的按钮。 (在 Django 1.3 中,您可以扩展 object-tools-items 块,请参阅: https://code.djangoproject .com/ticket/12694 )
(我确信可以构建一个不错的插件/应用程序,它可以使用模型方法列表从 ModelAdmin 中的自定义“object_tools”属性自动将对象工具添加到模型中。如果您发现类似的东西,请告诉我。)
You can add your own view to the admin site by adding an "^admin/..." url in your url conf. You can use this to extend the admin site relatively easy and expose model methods through your own view. See
Creating Custom Admin Views
here: http://www.djangobook.com/en/1.0/chapter17/ (and another approach and notes here: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-views-to-admin-sites ).To add this as a button in the model's "change form" in the admin site, override the
change_form.html
template for the required models (see https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-admin-templates ).You will probably want to override the object-tools block, which holds the buttons in the top right side of the page. (In Django 1.3 you can extend the object-tools-items block instead, see: https://code.djangoproject.com/ticket/12694 )
(I am quite sure one can build a nice plugin/app that automatically adds object-tools to a model from a custom "object_tools" property in the ModelAdmin with a list of model methods. Let me know id you find something like this.)