在Django管理后台中移除“添加”功能

8 投票
6 回答
6692 浏览
提问于 2025-04-15 13:19

有没有办法在Django的管理后台去掉“添加”功能?对于某些内容,我只希望Django的管理后台能够查看这些内容或者修改已有的内容,而不想添加新的。

6 个回答

3

你可以在管理员界面里为每个用户组设置权限:试着去 /admin/auth/group,接下来就会很简单了。

虽然这个方法没有之前回答的那么详细,但它可以满足你大部分的需求,而且不需要对管理员界面进行特别的修改。

8

请查看这个链接:Django Admin - 禁用特定模型的“添加”操作,里面有真正的解决办法。

3

当然,你可以非常详细地自定义管理后台,具体的步骤可以参考这里。我认为你想要的功能可以通过重写ModelAdmin.save_model(self, request, obj, form, change)这个方法来实现,这样当change为假时(也就是说是尝试添加新内容而不是修改),就不会在数据库里进行任何操作。另外,你还可以重写ModelAdmin.add_view(self, request, form_url='', extra_context=None),这样可以显示一个“添加视图”,让管理员清楚地知道他们不能通过这个方式添加对象。我自己没有做过你需要的具体管理定制,但我做过其他的定制,感觉都挺顺利的!

撰写回答