作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个网站,用户可以在其中通过管理面板添加条目。每个用户都有自己负责的类别(每个类别都有一个通过 ForeingKey/ManyToManyField 分配的编辑器)。
当用户添加条目时,我通过使用 EntryAdmin 来限制选择,如下所示:
class EntryAdmin(admin.ModelAdmin):
(...)
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'category':
if request.user.is_superuser:
kwargs['queryset'] = Category.objects.all()
else:
kwargs['queryset'] = Category.objects.filter(editors=request.user)
return db_field.formfield(**kwargs)
return super(EntryAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
def changelist_view(self, request, extra_context=None):
if not request.user.is_superuser:
self.queryset = self.queryset.filter(editors=request.user)
AttributeError: 'function' object has no attribute 'filter'
最佳答案
警告:此答案来自 2010 年,对 Django >= 1.8 没有用。 queryset
是 ModelAdmin
上的一个方法它返回一个查询集。您需要在您的 EntryAdmin
上覆盖它类(class)。
def queryset(self, request):
qs = super(EntryAdmin, self).queryset(request)
if request.user.is_superuser:
return qs
else:
return qs.filter(editors=request.user)
has_change_permission
确保用户有权在单个对象编辑页面上编辑对象。有关详细信息,请参阅 James Bennett 的以下博客文章:
关于django - 如何在 django admin 中的 changelist_view 中过滤查询集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2618893/
我正在尝试在显示更改列表时向 Django 管理 View 添加一些上下文。 我有这门课 class LeadStatSummaryAdmin(admin.ModelAdmin): chang
假设我有一个网站,用户可以在其中通过管理面板添加条目。每个用户都有自己负责的类别(每个类别都有一个通过 ForeingKey/ManyToManyField 分配的编辑器)。 当用户添加条目时,我通过
我是一名优秀的程序员,十分优秀!