django - 文章作者的自定义 Django 管理员权限
问题描述
我正在建立一个包含文章的网站。文章内容将存储在数据库模型中。例子:
class article(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
date_posted = models.DateTimeField(default=timezone.now)
content = models.TextField()
...
我想使用内置的管理应用程序向网站添加新文章。我将有一个名为“作者”的组,它允许其他人登录到管理部分并添加新内容。
我的问题是权限。我想授予“作者”组添加、更改、查看和删除文章的权限。但我想仅限于他们创建的文章。基本上我不希望他们能够更新其他作者的帖子。
有没有办法可以给他们自定义权限,以便他们只能更改、查看和删除自己的帖子?
解决方案
您可以使用get_queryset。
class ArticleModelAdmin(admin.ModelAdmin):
def get_queryset(self, request):
qs = super(ArticleModelAdmin, self).get_queryset(request)
return qs.filter(author=request.user)
不要忘记注册您的 ModelAdmin。
admin.site.register(Article, ArticleModelAdmin)
推荐阅读
- xamarin - 更改 Xamarin 移动应用程序的工具栏颜色
- kubernetes - OC Cluster never up Error: timed out waiting for the condition
- python - 我无法在 django 中使用 create_user() 方法注册用户
- docker - 如果注册表中不存在映像,则私有 docker registery 服务器从 docker hub 中提取
- javascript - textarea onchange 未在 php 脚本中触发
- python - Conda 安装不工作(回溯错误)
- tomcat - tomcat jar扫描的优点
- ios - 模拟器不可用 appcelerator studio
- php - 使用 Php 通过表单将项目添加到数组中
- javascript - 如何使上下文在单击时旋转