Django 生成的 admin 页面,如何禁止某些 model 的添加/修改功能?

如题,有些 django-admin 默认是所有 model 都会加上添加、修改、删除之类的功能,有没有办法禁用某个 model 的部分功能?

  • 重写你的 modeladmin 的 has_add_permission has_delete_permission 方法,可以定制 model 的修改删除行为。
  • 重写 get_readonly_fields 方法,可以针对某些字段设置为只读而不能修改。
  • 再重写 save_model可以修改 model 保存时候的一些行为。
  • 重写 change_view方法,可以修改 修改 model 时候的行为

总而言之,如果需要自定义 djangoadmin 又不想更改 django 源码,就只能重写 admin.ModelAdmin 这个 class 的一些方法接口。配合返回的 querysetpermission,大部分业务需求都能完成。具体自行 google 那些方法的用法。

一篇参考 Django admin的一些有用定制

更高级的更灵活的定制,就是自己撸一个后台出来。

发表评论

电子邮件地址不会被公开。 必填项已用*标注