Django Admin

时间:2019-04-06 16:52:57

标签: python django django-admin

让我们假设我的Django项目和模型中有不同的用户,以便每个记录都属于某个用户。用户应该可以访问“管理”面板。

class MyModel(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    ...

Django中是否有一种标准方法来创建任何用户列表,在“管理”面板中仅创建和编辑MyModel的HIS实例,而隐藏其他用户创建的实例?

1 个答案:

答案 0 :(得分:1)

您可以为模型管理员覆盖queryset。像这样:

class MyModelAdmin(admin.ModelAdmin):
    def get_queryset(self, request):
        qs = super().get_queryset(request)
        qs = qs.filter(user=request.user)
        return qs

这将根据实例所属的用户过滤掉实例。