让我们假设我的Django项目和模型中有不同的用户,以便每个记录都属于某个用户。用户应该可以访问“管理”面板。
class MyModel(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
...
Django中是否有一种标准方法来创建任何用户列表,在“管理”面板中仅创建和编辑MyModel的HIS实例,而隐藏其他用户创建的实例?
答案 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
这将根据实例所属的用户过滤掉实例。